<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.11/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.11/ http://www.mediawiki.org/xml/export-0.11.xsd" version="0.11" xml:lang="en">
  <siteinfo>
    <sitename>The Mana World</sitename>
    <dbname>wiki</dbname>
    <base>https://wiki.themanaworld.org/index.php/Main_Page</base>
    <generator>MediaWiki 1.37.2</generator>
    <case>first-letter</case>
    <namespaces>
      <namespace key="-2" case="first-letter">Media</namespace>
      <namespace key="-1" case="first-letter">Special</namespace>
      <namespace key="0" case="first-letter" />
      <namespace key="1" case="first-letter">Talk</namespace>
      <namespace key="2" case="first-letter">User</namespace>
      <namespace key="3" case="first-letter">User talk</namespace>
      <namespace key="4" case="first-letter">The Mana World</namespace>
      <namespace key="5" case="first-letter">The Mana World talk</namespace>
      <namespace key="6" case="first-letter">File</namespace>
      <namespace key="7" case="first-letter">File talk</namespace>
      <namespace key="8" case="first-letter">MediaWiki</namespace>
      <namespace key="9" case="first-letter">MediaWiki talk</namespace>
      <namespace key="10" case="first-letter">Template</namespace>
      <namespace key="11" case="first-letter">Template talk</namespace>
      <namespace key="12" case="first-letter">Help</namespace>
      <namespace key="13" case="first-letter">Help talk</namespace>
      <namespace key="14" case="first-letter">Category</namespace>
      <namespace key="15" case="first-letter">Category talk</namespace>
      <namespace key="100" case="first-letter">Test</namespace>
      <namespace key="101" case="first-letter">Test talk</namespace>
      <namespace key="102" case="first-letter">Archive</namespace>
      <namespace key="103" case="first-letter">Archive talk</namespace>
      <namespace key="104" case="first-letter">Dev</namespace>
      <namespace key="105" case="first-letter">Dev talk</namespace>
      <namespace key="106" case="first-letter">Net</namespace>
      <namespace key="107" case="first-letter">Net talk</namespace>
      <namespace key="108" case="first-letter">Classic</namespace>
      <namespace key="109" case="first-letter">Classic talk</namespace>
      <namespace key="110" case="first-letter">Moubootaur Legends</namespace>
      <namespace key="111" case="first-letter">Moubootaur Legends talk</namespace>
      <namespace key="112" case="first-letter">Revolt</namespace>
      <namespace key="113" case="first-letter">Revolt talk</namespace>
      <namespace key="114" case="first-letter">Event</namespace>
      <namespace key="115" case="first-letter">Event talk</namespace>
      <namespace key="116" case="first-letter">SoM</namespace>
      <namespace key="117" case="first-letter">SoM talk</namespace>
      <namespace key="101180" case="first-letter">Ar</namespace>
      <namespace key="101181" case="first-letter">Ar talk</namespace>
      <namespace key="103260" case="first-letter">Cz</namespace>
      <namespace key="103261" case="first-letter">Cz talk</namespace>
      <namespace key="104050" case="first-letter">De</namespace>
      <namespace key="104051" case="first-letter">De talk</namespace>
      <namespace key="105140" case="first-letter">En</namespace>
      <namespace key="105141" case="first-letter">En talk</namespace>
      <namespace key="105190" case="first-letter">Es</namespace>
      <namespace key="105191" case="first-letter">Es talk</namespace>
      <namespace key="106010" case="first-letter">Fa</namespace>
      <namespace key="106011" case="first-letter">Fa talk</namespace>
      <namespace key="106180" case="first-letter">Fr</namespace>
      <namespace key="106181" case="first-letter">Fr talk</namespace>
      <namespace key="109040" case="first-letter">Id</namespace>
      <namespace key="109041" case="first-letter">Id talk</namespace>
      <namespace key="109200" case="first-letter">It</namespace>
      <namespace key="109201" case="first-letter">It talk</namespace>
      <namespace key="116120" case="first-letter">Pl</namespace>
      <namespace key="116121" case="first-letter">Pl talk</namespace>
      <namespace key="116200" case="first-letter">Pt</namespace>
      <namespace key="116201" case="first-letter">Pt talk</namespace>
      <namespace key="118210" case="first-letter">Ru</namespace>
      <namespace key="118211" case="first-letter">Ru talk</namespace>
      <namespace key="119170" case="first-letter">Sq</namespace>
      <namespace key="119171" case="first-letter">Sq talk</namespace>
      <namespace key="120180" case="first-letter">Tr</namespace>
      <namespace key="120181" case="first-letter">Tr talk</namespace>
      <namespace key="126080" case="first-letter">Zh</namespace>
      <namespace key="126081" case="first-letter">Zh talk</namespace>
    </namespaces>
  </siteinfo>
  <page>
    <title>Development:Animations</title>
    <ns>0</ns>
    <id>2026</id>
    <revision>
      <id>3639</id>
      <timestamp>2006-03-12T15:07:36Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <comment>A first attempt at a new animation system</comment>
      <origin>3639</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2327" sha1="e8w8jpfwdxcrxt1eg1zaxelk5c2si0b" xml:space="preserve">This is a first attempt at defining a new animation system which should improve the current behaviour of beings, especially the player.
The general idea is to have an xml document defining everything about an animation. Here follows an example of what I'm talking about.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="player-male-misc.png" width="64" height="64"/&gt;
  &lt;image id="1" name="stab" file="player-male-stab.png" width="64" height="64"/&gt;
  &lt;image id="2" name="bow" file="player-male-bow.png" width="64" height="64"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="1"/&gt;
  &lt;action name="walk" image="0" frames="6"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="sit" image="0" frames="1"/&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
  &lt;action name="stab" image="1" frames="4"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="30"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="bow" image="2" frames="5"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="40"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"
  &lt;/action&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. 
Reuse of frames should also be considered, so we could specify the exact frames sequence. Just take the bat as an example. The standing animation as well as the walking one require 4 frames. A bat can hardly stay in flight without flapping his wings as it does now. And in the spritesheet the first 2 rows are identical suggesting one of them could be removed.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="bat"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="monster15.png" width="60" height="60"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;action name="walk" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;/action&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;</text>
      <sha1>e8w8jpfwdxcrxt1eg1zaxelk5c2si0b</sha1>
    </revision>
    <revision>
      <id>3640</id>
      <parentid>3639</parentid>
      <timestamp>2006-03-12T15:37:47Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <origin>3640</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2606" sha1="jnsr8nxnkx5j81nly404lky2jnb9o2g" xml:space="preserve">This is a first attempt at defining a new animation system which should improve the current behaviour of beings, especially the player.
The general idea is to have an xml document defining everything about an animation. Here follows an example of what I'm talking about.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="player-male-misc.png" width="64" height="64"/&gt;
  &lt;image id="1" name="stab" file="player-male-stab.png" width="64" height="64"/&gt;
  &lt;image id="2" name="bow" file="player-male-bow.png" width="64" height="64"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="1"/&gt;
  &lt;action name="walk" image="0" frames="6"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="sit" image="0" frames="1"/&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
  &lt;action name="stab" image="1" frames="4"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="30"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="bow" image="2" frames="5"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="40"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"
  &lt;/action&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. 
Reuse of frames should also be considered, so we could specify the exact frames sequence. Just take the bat as an example. The standing animation as well as the walking one require 4 frames. A bat can hardly stay in flight without flapping his wings as it does now. And in the spritesheet the first 2 rows are identical suggesting one of them could be removed.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="bat"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="monster15.png" width="60" height="60"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;action name="walk" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;/action&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

== Comments ==

Maybe the &lt;frame&gt; tags should define the spriteset id and the subimage id of the frame. That way a single animation could consist of frames from different spritesets and different positions inside the spriteset. --[[User:Crush|Crush]] 16:37, 12 March 2006 (CET)</text>
      <sha1>jnsr8nxnkx5j81nly404lky2jnb9o2g</sha1>
    </revision>
    <revision>
      <id>3641</id>
      <parentid>3640</parentid>
      <timestamp>2006-03-12T15:48:57Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Comments */  made my point a little bit clearer</comment>
      <origin>3641</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3009" sha1="1fq1zavzdqcm7l6r93osnox7dzoyjmp" xml:space="preserve">This is a first attempt at defining a new animation system which should improve the current behaviour of beings, especially the player.
The general idea is to have an xml document defining everything about an animation. Here follows an example of what I'm talking about.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="player-male-misc.png" width="64" height="64"/&gt;
  &lt;image id="1" name="stab" file="player-male-stab.png" width="64" height="64"/&gt;
  &lt;image id="2" name="bow" file="player-male-bow.png" width="64" height="64"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="1"/&gt;
  &lt;action name="walk" image="0" frames="6"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="sit" image="0" frames="1"/&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
  &lt;action name="stab" image="1" frames="4"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="30"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="bow" image="2" frames="5"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="40"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"
  &lt;/action&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. 
Reuse of frames should also be considered, so we could specify the exact frames sequence. Just take the bat as an example. The standing animation as well as the walking one require 4 frames. A bat can hardly stay in flight without flapping his wings as it does now. And in the spritesheet the first 2 rows are identical suggesting one of them could be removed.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="bat"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="monster15.png" width="60" height="60"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;action name="walk" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;/action&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

== Comments ==

Maybe the &lt;frame&gt; tags should define the spriteset id and the number of the sprite inside the spriteset. That way a single animation could consist of frames from different spritesets and any combination inside the spriteset. a walk animation where the middle animation phase is used twice would look that way:
&lt;pre&gt;
  &lt;action name="walk" image="0" frames="4"&gt;
   &lt;frame number="0" delay="20" spriteset="0" image="4" /&gt;
   &lt;frame number="1" delay="20" spriteset="0" image="5" /&gt;
   &lt;frame number="2" delay="20" spriteset="0" image="6" /&gt;
   &lt;frame number="3" delay="20" spriteset="0" image="5" /&gt;
  &lt;/action&gt;
&lt;/pre&gt;
--[[User:Crush|Crush]] 16:37, 12 March 2006 (CET)</text>
      <sha1>1fq1zavzdqcm7l6r93osnox7dzoyjmp</sha1>
    </revision>
    <revision>
      <id>3642</id>
      <parentid>3641</parentid>
      <timestamp>2006-03-12T15:51:30Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Comments */</comment>
      <origin>3642</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3125" sha1="1xwf58kxicrcewk3vujyu8cikw5he27" xml:space="preserve">This is a first attempt at defining a new animation system which should improve the current behaviour of beings, especially the player.
The general idea is to have an xml document defining everything about an animation. Here follows an example of what I'm talking about.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="player-male-misc.png" width="64" height="64"/&gt;
  &lt;image id="1" name="stab" file="player-male-stab.png" width="64" height="64"/&gt;
  &lt;image id="2" name="bow" file="player-male-bow.png" width="64" height="64"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="1"/&gt;
  &lt;action name="walk" image="0" frames="6"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="sit" image="0" frames="1"/&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
  &lt;action name="stab" image="1" frames="4"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="30"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="bow" image="2" frames="5"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="40"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"
  &lt;/action&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. 
Reuse of frames should also be considered, so we could specify the exact frames sequence. Just take the bat as an example. The standing animation as well as the walking one require 4 frames. A bat can hardly stay in flight without flapping his wings as it does now. And in the spritesheet the first 2 rows are identical suggesting one of them could be removed.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="bat"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="monster15.png" width="60" height="60"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;action name="walk" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;/action&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

== Comments ==

Maybe the &lt;frame&gt; tags should define the spriteset id and the number of the sprite inside the spriteset. That way a single animation could consist of frames from different spritesets and any combination inside the spriteset. then i don't see the reason why the number of frames has to be in the &lt;action&gt; tag. isn't it possible to just count the child &lt;frame&gt;'s?
a walk animation where the middle animation phase is used twice would look that way:
&lt;pre&gt;
  &lt;action name="walk"&gt;
   &lt;frame number="0" delay="20" spriteset="0" image="4" /&gt;
   &lt;frame number="1" delay="20" spriteset="0" image="5" /&gt;
   &lt;frame number="2" delay="20" spriteset="0" image="6" /&gt;
   &lt;frame number="3" delay="20" spriteset="0" image="5" /&gt;
  &lt;/action&gt;
&lt;/pre&gt;
--[[User:Crush|Crush]] 16:37, 12 March 2006 (CET)</text>
      <sha1>1xwf58kxicrcewk3vujyu8cikw5he27</sha1>
    </revision>
    <revision>
      <id>3643</id>
      <parentid>3642</parentid>
      <timestamp>2006-03-12T15:56:15Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Comments */ unit of delay property</comment>
      <origin>3643</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3403" sha1="cvs9bwft1489kl5x7usbv13v7lme7zn" xml:space="preserve">This is a first attempt at defining a new animation system which should improve the current behaviour of beings, especially the player.
The general idea is to have an xml document defining everything about an animation. Here follows an example of what I'm talking about.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="player-male-misc.png" width="64" height="64"/&gt;
  &lt;image id="1" name="stab" file="player-male-stab.png" width="64" height="64"/&gt;
  &lt;image id="2" name="bow" file="player-male-bow.png" width="64" height="64"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="1"/&gt;
  &lt;action name="walk" image="0" frames="6"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="sit" image="0" frames="1"/&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
  &lt;action name="stab" image="1" frames="4"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="30"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="bow" image="2" frames="5"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="40"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"
  &lt;/action&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. 
Reuse of frames should also be considered, so we could specify the exact frames sequence. Just take the bat as an example. The standing animation as well as the walking one require 4 frames. A bat can hardly stay in flight without flapping his wings as it does now. And in the spritesheet the first 2 rows are identical suggesting one of them could be removed.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="bat"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="monster15.png" width="60" height="60"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;action name="walk" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;/action&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

== Comments ==

Maybe the &lt;frame&gt; tags should define the spriteset id and the number of the sprite inside the spriteset. That way a single animation could consist of frames from different spritesets and any combination inside the spriteset. then i don't see the reason why the number of frames has to be in the &lt;action&gt; tag. isn't it possible to just count the child &lt;frame&gt;'s?
a walk animation where the middle animation phase is used twice would look that way:
&lt;pre&gt;
  &lt;action name="walk"&gt;
   &lt;frame number="0" delay="20" spriteset="0" image="4" /&gt;
   &lt;frame number="1" delay="20" spriteset="0" image="5" /&gt;
   &lt;frame number="2" delay="20" spriteset="0" image="6" /&gt;
   &lt;frame number="3" delay="20" spriteset="0" image="5" /&gt;
  &lt;/action&gt;
&lt;/pre&gt;
--[[User:Crush|Crush]] 16:37, 12 March 2006 (CET)

Oh, and something else: it isn't mentioned what exactly the unit of the delay property is. i think the delays should be defined as milliseconds, not frames. that way the animation speed would be independent from the framerate. --[[User:Crush|Crush]] 16:56, 12 March 2006 (CET)</text>
      <sha1>cvs9bwft1489kl5x7usbv13v7lme7zn</sha1>
    </revision>
    <revision>
      <id>3648</id>
      <parentid>3643</parentid>
      <timestamp>2006-03-12T18:24:33Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>status: red</comment>
      <origin>3648</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3418" sha1="sppt3bn9df677nam6rmbz5xtga4a4s6" xml:space="preserve">{{Status_red}}
This is a first attempt at defining a new animation system which should improve the current behaviour of beings, especially the player.
The general idea is to have an xml document defining everything about an animation. Here follows an example of what I'm talking about.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="player-male-misc.png" width="64" height="64"/&gt;
  &lt;image id="1" name="stab" file="player-male-stab.png" width="64" height="64"/&gt;
  &lt;image id="2" name="bow" file="player-male-bow.png" width="64" height="64"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="1"/&gt;
  &lt;action name="walk" image="0" frames="6"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="sit" image="0" frames="1"/&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
  &lt;action name="stab" image="1" frames="4"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="30"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"&gt;
  &lt;/action&gt;
  &lt;action name="bow" image="2" frames="5"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="10"&gt;
   &lt;frame delay="40"&gt;
   &lt;frame delay="20"&gt;
   &lt;frame delay="20"
  &lt;/action&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. 
Reuse of frames should also be considered, so we could specify the exact frames sequence. Just take the bat as an example. The standing animation as well as the walking one require 4 frames. A bat can hardly stay in flight without flapping his wings as it does now. And in the spritesheet the first 2 rows are identical suggesting one of them could be removed.

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="bat"&gt;
 &lt;images&gt;
  &lt;image id="0" name="misc" file="monster15.png" width="60" height="60"/&gt;
 &lt;/images&gt;
 &lt;actions&gt;
  &lt;action name="stand" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;action name="walk" image="0" frames="4"/&gt;
   &lt;frame delay="20" frame="0"&gt;
   &lt;frame delay="20" frame="1"&gt;
   &lt;frame delay="20" frame="2"&gt;
   &lt;frame delay="20" frame="3"&gt;
  &lt;/action&gt;
  &lt;action name="die" image="0" frames="1"/&gt;
 &lt;/actions&gt;
&lt;/animation&gt;
&lt;/pre&gt;

== Comments ==

Maybe the &lt;frame&gt; tags should define the spriteset id and the number of the sprite inside the spriteset. That way a single animation could consist of frames from different spritesets and any combination inside the spriteset. then i don't see the reason why the number of frames has to be in the &lt;action&gt; tag. isn't it possible to just count the child &lt;frame&gt;'s?
a walk animation where the middle animation phase is used twice would look that way:
&lt;pre&gt;
  &lt;action name="walk"&gt;
   &lt;frame number="0" delay="20" spriteset="0" image="4" /&gt;
   &lt;frame number="1" delay="20" spriteset="0" image="5" /&gt;
   &lt;frame number="2" delay="20" spriteset="0" image="6" /&gt;
   &lt;frame number="3" delay="20" spriteset="0" image="5" /&gt;
  &lt;/action&gt;
&lt;/pre&gt;
--[[User:Crush|Crush]] 16:37, 12 March 2006 (CET)

Oh, and something else: it isn't mentioned what exactly the unit of the delay property is. i think the delays should be defined as milliseconds, not frames. that way the animation speed would be independent from the framerate. --[[User:Crush|Crush]] 16:56, 12 March 2006 (CET)</text>
      <sha1>sppt3bn9df677nam6rmbz5xtga4a4s6</sha1>
    </revision>
    <revision>
      <id>3795</id>
      <parentid>3648</parentid>
      <timestamp>2006-03-14T10:18:55Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <comment>Version 0.2</comment>
      <origin>3795</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="938" sha1="9zfnx4nw7pa22b3zn4sj2owgtrcomgv" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.</text>
      <sha1>9zfnx4nw7pa22b3zn4sj2owgtrcomgv</sha1>
    </revision>
    <revision>
      <id>3800</id>
      <parentid>3795</parentid>
      <timestamp>2006-03-14T17:47:05Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added my suggestion</comment>
      <origin>3800</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3161" sha1="ea1luo8z1oraa1rwuu9bk9iv0zstgka" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;</text>
      <sha1>ea1luo8z1oraa1rwuu9bk9iv0zstgka</sha1>
    </revision>
    <revision>
      <id>3801</id>
      <parentid>3800</parentid>
      <timestamp>2006-03-14T17:56:41Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Some addendum</comment>
      <origin>3801</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3754" sha1="gp2w6528s4t5b7rhqzemr6nyasnmq5w" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walker-default.xml"&gt;
  &lt;imageset name="base" src="scorpion-base.png" width="..." height="..." /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;</text>
      <sha1>gp2w6528s4t5b7rhqzemr6nyasnmq5w</sha1>
    </revision>
    <revision>
      <id>3802</id>
      <parentid>3801</parentid>
      <timestamp>2006-03-14T20:44:38Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Some small modifications</comment>
      <origin>3802</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4539" sha1="h3enk0egdm3rsl3cjnu8eg6j0bwxlza" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.</text>
      <sha1>h3enk0egdm3rsl3cjnu8eg6j0bwxlza</sha1>
    </revision>
    <revision>
      <id>3803</id>
      <parentid>3802</parentid>
      <timestamp>2006-03-15T13:32:54Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Red scorpion for further illustration</comment>
      <origin>3803</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4714" sha1="6zep5oijvgqd53orfkcfqpz5r3gzmhl" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.</text>
      <sha1>6zep5oijvgqd53orfkcfqpz5r3gzmhl</sha1>
    </revision>
    <revision>
      <id>3813</id>
      <parentid>3803</parentid>
      <timestamp>2006-03-18T15:05:31Z</timestamp>
      <contributor>
        <username>Peoro</username>
        <id>322</id>
      </contributor>
      <origin>3813</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6396" sha1="ognuu0k2io0pq7v47h7z4h2oxaqiaab" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:

&lt;pre&gt;
class Animation
{
	int nframes;
	Img **frames;
	int *times;
	int totalTime;
	int start;
	
public:
	Animation ( int n, Img **i, int *t )
	{
		int c;
		
		nframes = n;
		frames = new Img* [n];
		times = new int [n];
		totalTime = 0;
		
		for ( c = 0; c &lt; n; c ++ ) {
			frames[c] = i[c];
			times[c] = t[c];
			totalTime += t[c];
		}
	}
	
	inline void start ( int t )
	{
		start = t;
	}

	Img *getFrame ( int t )
	{
		int i;
		int it
		
		if ( ! totalTime ) {
			t = 0;
		} else {
			t = (t-start) % totalTime;
		}
		
		// searches the current frame
		for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
		
		return frames[i];
	}
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( clock() );

while ( 1 ) {
	draw ( a.getFrame(clock()) );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.</text>
      <sha1>ognuu0k2io0pq7v47h7z4h2oxaqiaab</sha1>
    </revision>
    <revision>
      <id>3814</id>
      <parentid>3813</parentid>
      <timestamp>2006-03-18T15:10:40Z</timestamp>
      <contributor>
        <username>Peoro</username>
        <id>322</id>
      </contributor>
      <origin>3814</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6623" sha1="br5473quhsn1l09gdqmstdbjv6m15ld" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int start;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t )
    {
        start = t;
    }
    
    Img *getFrame ( int t )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-start) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( clock() );

while ( 1 ) {
    draw ( a.getFrame(clock()) );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.</text>
      <sha1>br5473quhsn1l09gdqmstdbjv6m15ld</sha1>
    </revision>
    <revision>
      <id>3815</id>
      <parentid>3814</parentid>
      <timestamp>2006-03-18T15:43:53Z</timestamp>
      <contributor>
        <username>Peoro</username>
        <id>322</id>
      </contributor>
      <origin>3815</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8415" sha1="k8s4nudb589m980qvi0d20tjbl10ya2" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.</text>
      <sha1>k8s4nudb589m980qvi0d20tjbl10ya2</sha1>
    </revision>
    <revision>
      <id>3816</id>
      <parentid>3815</parentid>
      <timestamp>2006-03-18T16:12:17Z</timestamp>
      <contributor>
        <username>Peoro</username>
        <id>322</id>
      </contributor>
      <origin>3816</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8470" sha1="rhw2yhz6e4nlbo1jrg3zf4z8em3p5su" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.</text>
      <sha1>rhw2yhz6e4nlbo1jrg3zf4z8em3p5su</sha1>
    </revision>
    <revision>
      <id>3817</id>
      <parentid>3816</parentid>
      <timestamp>2006-03-18T16:50:53Z</timestamp>
      <contributor>
        <username>Doener</username>
        <id>43</id>
      </contributor>
      <comment>Added implementation proposal</comment>
      <origin>3817</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11007" sha1="3tmcjw3l6xnn9vsr7rpmp1nrngq1ake" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>3tmcjw3l6xnn9vsr7rpmp1nrngq1ake</sha1>
    </revision>
    <revision>
      <id>3818</id>
      <parentid>3817</parentid>
      <timestamp>2006-03-18T16:52:27Z</timestamp>
      <contributor>
        <username>Doener</username>
        <id>43</id>
      </contributor>
      <minor/>
      <comment>/* Implementation proposal by Doener */</comment>
      <origin>3818</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11021" sha1="0bm6kznu8a0mak2707xnxwwkl81mbgv" xml:space="preserve">{{Status_red}}
After a mini-meeting between me and Doener we refined the model.
Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;animation name="player"&gt;
	&lt;spritemap name="misc" src="player-male-misc.png" width="64" height="64" /&gt;
	&lt;spritemap name="stab" src="player-male-stab.png" width="64" height="64" /&gt;
	&lt;spritemap name="bow" src="player-male-bow.png" width="64" height="64" /&gt;
 
	&lt;action name="stand"&gt;
		&lt;frame spritemap="misc" index="0" delay="0" /&gt;
	&lt;/action&gt;
 
	&lt;action name="walk"&gt;
		&lt;frame spritemap="misc" index="0" delay="20" /&gt;
		&lt;frame spritemap="misc" index="1" delay="20" /&gt;
	&lt;/action&gt;
 
	&lt;action name="bow-attack"&gt;
		&lt;sequence spritemap="bow" start="0" end="5" delay="20" /&gt;
	&lt;/action&gt;
&lt;/animation&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Some attempt by BjÃ¸rn ==

A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

In the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

For the dead frame I have specified no direction attribute, which makes this animation independent of direction. Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>0bm6kznu8a0mak2707xnxwwkl81mbgv</sha1>
    </revision>
    <revision>
      <id>4175</id>
      <parentid>3818</parentid>
      <timestamp>2006-04-30T13:18:55Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>cleanup and clarification</comment>
      <origin>4175</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12300" sha1="3zm9vgrz9ap4ef2nc8nii1rm9r2nnyc" xml:space="preserve">{{Status_red}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object is in a specific state (attribute "name") and in a specific direction (attribute "direction").

possible names:
&lt;pre&gt;
       attack-bow
            |
      attack-stab  sleeping
            |         |
run   attack-swing   sit
 |          |         |
walk     attack      dead
   \        |        /
          stand
            |
       (nameless)
&lt;/pre&gt;
this table also specifies the substitution preference when a specific name is requested but it is not defined. the next lower name is used instead.

possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;
when no direction attribute is provided, this &lt;code&gt;animation&lt;/code&gt; is used for all missing directions with the same name.

=== &amp;lt;frame&amp;gt; ===

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; child elements. each of them defines one frame of the animation. the required attributes are &lt;code&gt;imageset&lt;/code&gt; and ether &lt;code&gt;index&lt;/code&gt; or &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt;.

&lt;code&gt;imageset&lt;/code&gt; defines the spriteset file from which the frame should be taken and &lt;code&gt;index&lt;/code&gt; defines the number of the sprite in this spriteset. when a &lt;code&gt;start&lt;/code&gt; and a &lt;/code&gt;end&lt;/code&gt; tag is provided instead of an &lt;code&gt;index&lt;/code&gt; tag the &lt;code&gt;frame&lt;/code&gt; tag does not only define one animation phase but multiple phases which all use the same imageset and delay and where the sprite indices in the spriteset are from "start" to "end".

an optional attribute is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified the animation doesn't continue when the &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>3zm9vgrz9ap4ef2nc8nii1rm9r2nnyc</sha1>
    </revision>
    <revision>
      <id>4176</id>
      <parentid>4175</parentid>
      <timestamp>2006-04-30T13:23:36Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;animation&amp;gt; */</comment>
      <origin>4176</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12358" sha1="gvc0gg8rqhucux997kifu1hezfrk1cv" xml:space="preserve">{{Status_red}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object is in a specific state (attribute "name") and in a specific direction (attribute "direction").

possible names:
&lt;pre&gt;
       attack-bow
            |
      attack-stab  
            |         
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;
this table also specifies the substitution preference when a specific name is requested but it is not defined. the next lower name is used instead.

possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;
when no direction attribute is provided, this &lt;code&gt;animation&lt;/code&gt; is used for all missing directions with the same name.

=== &amp;lt;frame&amp;gt; ===

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; child elements. each of them defines one frame of the animation. the required attributes are &lt;code&gt;imageset&lt;/code&gt; and ether &lt;code&gt;index&lt;/code&gt; or &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt;.

&lt;code&gt;imageset&lt;/code&gt; defines the spriteset file from which the frame should be taken and &lt;code&gt;index&lt;/code&gt; defines the number of the sprite in this spriteset. when a &lt;code&gt;start&lt;/code&gt; and a &lt;/code&gt;end&lt;/code&gt; tag is provided instead of an &lt;code&gt;index&lt;/code&gt; tag the &lt;code&gt;frame&lt;/code&gt; tag does not only define one animation phase but multiple phases which all use the same imageset and delay and where the sprite indices in the spriteset are from "start" to "end".

an optional attribute is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified the animation doesn't continue when the &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>gvc0gg8rqhucux997kifu1hezfrk1cv</sha1>
    </revision>
    <revision>
      <id>4177</id>
      <parentid>4176</parentid>
      <timestamp>2006-04-30T13:27:37Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;animation&amp;gt; */ some more possible animations</comment>
      <origin>4177</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12425" sha1="98yjiw9aw8ci7xvihvblpt8ivykx7ur" xml:space="preserve">{{Status_red}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object is in a specific state (attribute "name") and in a specific direction (attribute "direction").

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;
this table also specifies the substitution preference when a specific name is requested but it is not defined. the next lower name is used instead.

possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;
when no direction attribute is provided, this &lt;code&gt;animation&lt;/code&gt; is used for all missing directions with the same name.

=== &amp;lt;frame&amp;gt; ===

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; child elements. each of them defines one frame of the animation. the required attributes are &lt;code&gt;imageset&lt;/code&gt; and ether &lt;code&gt;index&lt;/code&gt; or &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt;.

&lt;code&gt;imageset&lt;/code&gt; defines the spriteset file from which the frame should be taken and &lt;code&gt;index&lt;/code&gt; defines the number of the sprite in this spriteset. when a &lt;code&gt;start&lt;/code&gt; and a &lt;/code&gt;end&lt;/code&gt; tag is provided instead of an &lt;code&gt;index&lt;/code&gt; tag the &lt;code&gt;frame&lt;/code&gt; tag does not only define one animation phase but multiple phases which all use the same imageset and delay and where the sprite indices in the spriteset are from "start" to "end".

an optional attribute is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified the animation doesn't continue when the &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>98yjiw9aw8ci7xvihvblpt8ivykx7ur</sha1>
    </revision>
    <revision>
      <id>4178</id>
      <parentid>4177</parentid>
      <timestamp>2006-04-30T13:33:08Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;animation&amp;gt; */</comment>
      <origin>4178</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12429" sha1="qdafpjpu74efwg9jzt3jlmzbjgnp1dr" xml:space="preserve">{{Status_red}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object is in a specific state (attribute "name") and in a specific direction (attribute "direction").

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;
this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;
when no direction attribute is provided, this &lt;code&gt;animation&lt;/code&gt; is used for all missing directions with the same name.

=== &amp;lt;frame&amp;gt; ===

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; child elements. each of them defines one frame of the animation. the required attributes are &lt;code&gt;imageset&lt;/code&gt; and ether &lt;code&gt;index&lt;/code&gt; or &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt;.

&lt;code&gt;imageset&lt;/code&gt; defines the spriteset file from which the frame should be taken and &lt;code&gt;index&lt;/code&gt; defines the number of the sprite in this spriteset. when a &lt;code&gt;start&lt;/code&gt; and a &lt;/code&gt;end&lt;/code&gt; tag is provided instead of an &lt;code&gt;index&lt;/code&gt; tag the &lt;code&gt;frame&lt;/code&gt; tag does not only define one animation phase but multiple phases which all use the same imageset and delay and where the sprite indices in the spriteset are from "start" to "end".

an optional attribute is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified the animation doesn't continue when the &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>qdafpjpu74efwg9jzt3jlmzbjgnp1dr</sha1>
    </revision>
    <revision>
      <id>4311</id>
      <parentid>4178</parentid>
      <timestamp>2006-06-27T14:53:01Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <origin>4311</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12432" sha1="azbjprjqvwq4ffhrx8sjiscd4kst88c" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player"&gt;
 &lt;imageset name="base" src="player-male-base.png" width="64" height="64" /&gt;

 &lt;animation name="stand" direction="down"&gt;
  &lt;frame imageset="base" index="0" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="left"&gt;
  &lt;frame imageset="base" index="18" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="up"&gt;
  &lt;frame imageset="base" index="36" /&gt;
 &lt;/animation&gt;
 &lt;animation name="stand" direction="right"&gt;
  &lt;frame imageset="base" index="54" /&gt;
 &lt;/animation&gt;

 &lt;animation name="walk" direction="down"&gt;
  &lt;frames imageset="base" start="1" end="6" delay="10" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="sit" direction="down"&gt;
  &lt;frame imageset="base" index="7" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="bow-attack" direction="down"&gt;
  &lt;frames imageset="base" start="13" end="17" delays="5,5,5,10,50" /&gt;
 &lt;/animation&gt;
 ...

 &lt;animation name="dead"&gt;
  &lt;random&gt;
   &lt;frame imageset="base" index="8" /&gt;
   &lt;frame imageset="base" index="26" /&gt;
   &lt;frame imageset="base" index="44" /&gt;
   &lt;frame imageset="base" index="62" /&gt;
  &lt;/random&gt;
 &lt;/animation&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object is in a specific state (attribute "name") and in a specific direction (attribute "direction").

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;
this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;
when no direction attribute is provided, this &lt;code&gt;animation&lt;/code&gt; is used for all missing directions with the same name.

=== &amp;lt;frame&amp;gt; ===

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; child elements. each of them defines one frame of the animation. the required attributes are &lt;code&gt;imageset&lt;/code&gt; and ether &lt;code&gt;index&lt;/code&gt; or &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt;.

&lt;code&gt;imageset&lt;/code&gt; defines the spriteset file from which the frame should be taken and &lt;code&gt;index&lt;/code&gt; defines the number of the sprite in this spriteset. when a &lt;code&gt;start&lt;/code&gt; and a &lt;/code&gt;end&lt;/code&gt; tag is provided instead of an &lt;code&gt;index&lt;/code&gt; tag the &lt;code&gt;frame&lt;/code&gt; tag does not only define one animation phase but multiple phases which all use the same imageset and delay and where the sprite indices in the spriteset are from "start" to "end".

an optional attribute is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified the animation doesn't continue when the &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; and &lt;code&gt;frames&lt;/code&gt; element can optionally have attributes &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; to specify an offset from the default drawing position for that frame. This will allow the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets, and be defined exactly like below.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>azbjprjqvwq4ffhrx8sjiscd4kst88c</sha1>
    </revision>
    <revision>
      <id>4312</id>
      <parentid>4311</parentid>
      <timestamp>2006-06-28T13:18:58Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>using a real-live sample, some corrections regarding identifiers and improved the documentation</comment>
      <origin>4312</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13863" sha1="okx32hoc5hcse1c8nx3me398o9lzrgt" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. when a &lt;code&gt;start&lt;/code&gt; and a &lt;/code&gt;end&lt;/code&gt; tag is provided instead of an &lt;code&gt;index&lt;/code&gt; tag the 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>okx32hoc5hcse1c8nx3me398o9lzrgt</sha1>
    </revision>
    <revision>
      <id>4313</id>
      <parentid>4312</parentid>
      <timestamp>2006-06-28T13:20:29Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;frame&amp;gt; */</comment>
      <origin>4313</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13756" sha1="tn6q7tx0xyfik7mnh2z6j6mq2gf3h8y" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence I call the root element the &lt;code&gt;sprite&lt;/code&gt;. Also, I think we should seperately define animations in several directions. For now this example is based on the current playerset image, but by using multiple imagesets this could of course be split up.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>tn6q7tx0xyfik7mnh2z6j6mq2gf3h8y</sha1>
    </revision>
    <revision>
      <id>4315</id>
      <parentid>4313</parentid>
      <timestamp>2006-07-02T00:23:49Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* &amp;lt;sprite&amp;gt; */ explained the variant feature</comment>
      <origin>4315</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14121" sha1="7lh3b2lmkjui3cihdf1vkix7fjq3wnn" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>7lh3b2lmkjui3cihdf1vkix7fjq3wnn</sha1>
    </revision>
    <revision>
      <id>4336</id>
      <parentid>4315</parentid>
      <timestamp>2006-07-21T15:33:43Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <comment>Exclude_current_frame thingy</comment>
      <origin>4336</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14270" sha1="ll2i5bxs88ocp6u9zy6zxnni0j3scey" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;</text>
      <sha1>ll2i5bxs88ocp6u9zy6zxnni0j3scey</sha1>
    </revision>
    <revision>
      <id>4337</id>
      <parentid>4336</parentid>
      <timestamp>2006-07-21T15:45:17Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <origin>4337</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="15258" sha1="ck4z4dsd9vnvhqdoonb5g1rvahflqjt" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too mutch. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
===Static hairstyles===
These are hairstyles which only have one frame for each direction, for every animation. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the indicidual hairstyle's offset is the offset for that single frame with that hairstyle. 
...To be finished...</text>
      <sha1>ck4z4dsd9vnvhqdoonb5g1rvahflqjt</sha1>
    </revision>
    <revision>
      <id>4365</id>
      <parentid>4337</parentid>
      <timestamp>2006-07-22T12:57:54Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <comment>Finished hairstyle animation proposal</comment>
      <origin>4365</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="19920" sha1="p2gheuz30hcray7fw3crr03lffmr1gu" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too mutch. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. It moves asychronusly with the attack and walking animations and it also moves when you stand still. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>p2gheuz30hcray7fw3crr03lffmr1gu</sha1>
    </revision>
    <revision>
      <id>4368</id>
      <parentid>4365</parentid>
      <timestamp>2006-07-22T13:00:02Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <minor/>
      <comment>/* Special case hairstyles */</comment>
      <origin>4368</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="19960" sha1="2kt5jarxwt2wwp50epqojoq66tn4563" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== An implementation idea by Peoro ==

An idea to manage the animations should be a class based on a timer which choose automatically the current frame.
Who needs animations (players, monsters and npcs) has only to start the animanion and to request the frame to draw it.
Each instance of Animation class keep its own start-time (or a personal timer), its total time, number of frames, and the time of every frame.
The Animation class has to provide at least a function to start the animation and another one to get the current frame; other usefull functions should pause and restart the animation and allow to jump to a random frame.

Here a simple example of a prototype of an Animation class:
(I mutilated my original Animation class to simplify and summarize it cutting a lot of other functions and vars and using the most possible of standard items)

&lt;pre&gt;
class Animation
{
    int nframes;
    Img **frames;
    int *times;
    int totalTime;
    int startTime;
    
public:
    Animation ( int n, Img **i, int *t )
    {
        int c;
    	
        nframes = n;
        frames = new Img* [n];
        times = new int [n];
        totalTime = 0;
        
        for ( c = 0; c &lt; n; c ++ ) {
            frames[c] = i[c];
            times[c] = t[c];
            totalTime += t[c];
        }
    }
    
    inline void start ( int t = clock() )
    {
        startTime = t;
    }
    
    Img *getFrame ( int t = clock() )
    {
        int i;
        int it
        
        if ( ! totalTime ) {
            t = 0;
        } else {
            t = (t-startTime) % totalTime;
        }
            
        // searches the current frame
        for ( i = 0, it = 0; (it + times[i]) &lt; t; i ++, it += times[i] );
        
        return frames[i];
    }
	
};
&lt;/pre&gt;

And here how to use this class:

&lt;pre&gt;
Img * imgs [] = { img1, img2, img3 };
int times [] = { 20, 20, 30 };

Animation a ( 3, imgs, times );

a.start ( );

while ( 1 ) {
    draw ( a.getFrame() );
}
&lt;/pre&gt;

An advantage of this class is that the animation speed is indipendent to FPS and it's very easy to use.

This is a simple way to manage a lot of animations for who needs more than one:

&lt;pre&gt;
class AnimationsList
{
    // ltstr is only a const char* comparison function
    map&lt;const char*, Animation*, ltstr&gt; animations;
    int startTime;       // now Animation::startTime is no more usefull
    Animation *currentAnimation;
    
public:
    AnimationsList ( ) : currentAnimation(0) { }
    
    inline void addAnimation ( const char *n, Animation *a )
    {
        animations[n] = a;
    }
    
    int setAnimation ( const char *n, int t = clock() )
    {
	map&lt;const char*, Animation*, ltstr&gt;::iterator ai;
        Animation *a;
        
	ai = animations.find ( n );
	
	if ( ai == animations.end() ) {
                // error... animation not found
		return 0;
	}
	a = ai-&gt;second;
        
        if ( currentAnimation != a ) {
            a-&gt;start ( );
            currentAnimation = a;
            startTime = t;
	}
        
        return 1;
    }
    
    Img * getFrame ( )
    {
        if ( currentAnimation ) {
            return currentAnimation-&gt;getFrame ( );
        }
        return 0;
    }
};
&lt;/pre&gt;

Using a multimap instead the map it's possible to keep more than an animation bind to the same string. This would be a good way to make AnimationsList choose a random animation.


And here how to use AnimationsList class:

&lt;pre&gt;
AnimationsList al;

al.addAnimation ( "walking" "south", anim1 );
al.addAnimation ( "walking" "north", anim2 );
al.addAnimation ( "anim3", anim3 );

al.setAnimation ( "walking" "south" );

while ( 1 ) {
    draw ( al.getFrame() );
}
&lt;/pre&gt;

I hope not to had make a mistake writing... Anyway these are only theorical bases.

== Implementation proposal by Doener ==

This proposal is incomplete regarding how new sequences are added to the
Animation (which is not the right name for this type of class *g*)... Anyway,
you should get the idea...
The Frame class encapsulates images and are used to create a single linked list that
creates an animation. The idea behind the linked list is that you can easily create loops,
by having the last element of the animation pointing to the first one. Also, you can easily
prepend a "starting animation" before the loop, like in an animation of a running player.
He starts out with one animation and then loops the real running... The Animation class is
responsible for mapping animation names to their starting frame and for disposing the encapsulating
Frame objects, thus a std::map and a std::list is used to keep track of those objects.
The next frame is simply calculated from the time that has passed since the last run of the
logic method. The case that a whole animation loop can be skipped is not taken into consideration,
because a) we cannot do this with frames linked together arbitrarily and b) animations will probably
take around 100ms or longer, ie. we'd have less than 10fps for that case to happen and then 
there's nothing left to gain by that simple optimization anymore anyway ;)

For the linked list features, of course the xml format needs to be adjusted to support that.

&lt;pre&gt;
/*
 * Frame class, stored information about frames in an animation
 */
struct Frame
{
	Image *mImg;  // Image for this frame
	int mDelay;   // Time in ms for how long this frame is shown
	Frame *mNext; // Next frame in sequence
};

class Animation
{
	public:
		Animation():mCurrentFrame(0);
		~Animation();

		void setSequence(const std::string &amp;);

		void logic(int timePassed);

		Image* getCurrentImage()
			{ return mCurrentFrame ? mCurrentFrame-&gt;mImg : 0; }

	private:
		Frame *mCurrentFrame;
		typedef std::map&lt;std::string,Frame*&gt; FrameMap;
		typedef FrameMap::iterator FrameMapIterator;
		FrameMap mStartFrames;
		std::list&lt;Frame*&gt; mFrames;
		int mRemain;
}

Animation::~Animation()
{
	for_each(mFrames.begin(), mFrames.end(), make_dtor(mFrames));
}

void Animation::setSequence(const std::string &amp;name)
{
	FrameMapIterator i = mStartFrames.find(name);
	mCurrentFrame = (i == mStartFrames.end()) ? 0 : i-&gt;second;
	mRemain = 0;
}

void Animation::logic(int timePassed)
{
	mRemain += timePassed;
	while (mRemain &gt;= mCurrentFrame-&gt;mDelay) {
		mRemain -= mCurrentFrame-&gt;mDelay;
		mCurrentFrame = mCurrentFrame-&gt;mNext;
	}
};
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too mutch. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>2kt5jarxwt2wwp50epqojoq66tn4563</sha1>
    </revision>
    <revision>
      <id>4550</id>
      <parentid>4368</parentid>
      <timestamp>2006-08-03T00:08:20Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>removed obsolete implementation proposals</comment>
      <origin>4550</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13652" sha1="8msfn7rdraigykr8md6cbkgs46nkauj" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>8msfn7rdraigykr8md6cbkgs46nkauj</sha1>
    </revision>
    <revision>
      <id>4552</id>
      <parentid>4550</parentid>
      <timestamp>2006-08-04T00:27:52Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <minor/>
      <comment>Added gender variable</comment>
      <origin>4552</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13833" sha1="3rr704dub1kps1cjp90ezfdmgxvoybh" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>3rr704dub1kps1cjp90ezfdmgxvoybh</sha1>
    </revision>
    <revision>
      <id>4772</id>
      <parentid>4552</parentid>
      <timestamp>2006-08-30T16:02:07Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Two proposals based on current practices /* sequences based on default sequences */</comment>
      <origin>4772</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14814" sha1="jaxkoxhe7sdllb1ogm5w2vbhcugqsph" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>jaxkoxhe7sdllb1ogm5w2vbhcugqsph</sha1>
    </revision>
    <revision>
      <id>4773</id>
      <parentid>4772</parentid>
      <timestamp>2006-08-30T16:16:45Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Missed a /</comment>
      <origin>4773</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14815" sha1="fcl0vd9agiutggi3vrb3su313g2vfpm" xml:space="preserve">{{Status_yellow}}

Each animation will be defined by an xml document, here follows an example:

&lt;pre&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="50" /&gt;
			&lt;frame index="2" delay="50" /&gt;
			&lt;frame index="3" delay="50" /&gt;
			&lt;frame index="4" delay="50" /&gt;
			&lt;frame index="5" delay="50" /&gt;
			&lt;frame index="6" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="50" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="50" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="sit" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		 &lt;frame index="7" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		 &lt;frame index="25" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		 &lt;frame index="43" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		 &lt;frame index="61" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="dead" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="8" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="26" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="44" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="62" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="100" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="100" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
        (no name attribute)
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
&lt;/pre&gt;

when a specific direction isn't provided, the first defined direction is used instead. this can be overridden by defining an animation with the direction "default" for this action.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

== Suggested additions ==

=== multiple delays in a &amp;lt;frame&amp;gt; with start and end attribute ===
in the bow animation I've chosen a shortcut to specify different delays for different frames. I am undecided yet whether this is a nice feature or whether it'll be better to require multiple &lt;code&gt;frame&lt;/code&gt; elements in such cases.

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>fcl0vd9agiutggi3vrb3su313g2vfpm</sha1>
    </revision>
    <revision>
      <id>5093</id>
      <parentid>4773</parentid>
      <timestamp>2006-09-20T23:44:20Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>updated to a documentation of the current implementation</comment>
      <origin>5093</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14222" sha1="g8j7xyfk02kuhlmuvspbwvek4d4ge1b" xml:space="preserve">{{Status_green}}

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item
                   |
  attack-bow  cast-magic
       |           |
 attack-stab  attack-throw
         \     /       
run   attack-swing   sleeping   dead
 |          |           |        | 
walk     attack        sit      hurt
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default action is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;&lt;end&gt;&lt;/code&gt; tag, the animation stops and the sprite animation is set back into the "stand" state. This behavior is useful for one time actions like attacking, for example.

The end tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>g8j7xyfk02kuhlmuvspbwvek4d4ge1b</sha1>
    </revision>
    <revision>
      <id>5094</id>
      <parentid>5093</parentid>
      <timestamp>2006-09-21T00:03:10Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* &amp;lt;action&amp;gt; */ note about unimplemented actions</comment>
      <origin>5094</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14368" sha1="p2pfmmci7sd0t3jmhgjvg1ckj3m2lii" xml:space="preserve">{{Status_green}}

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default action is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;&lt;end&gt;&lt;/code&gt; tag, the animation stops and the sprite animation is set back into the "stand" state. This behavior is useful for one time actions like attacking, for example.

The end tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>p2pfmmci7sd0t3jmhgjvg1ckj3m2lii</sha1>
    </revision>
    <revision>
      <id>5842</id>
      <parentid>5094</parentid>
      <timestamp>2007-01-07T21:56:16Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Made sure the contents shows up at the top</comment>
      <origin>5842</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14406" sha1="67ygtmrefgzku00qd79b3bss6y0t5bw" xml:space="preserve">{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default action is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;&lt;end&gt;&lt;/code&gt; tag, the animation stops and the sprite animation is set back into the "stand" state. This behavior is useful for one time actions like attacking, for example.

The end tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>67ygtmrefgzku00qd79b3bss6y0t5bw</sha1>
    </revision>
    <revision>
      <id>6404</id>
      <parentid>5842</parentid>
      <timestamp>2007-03-24T21:17:37Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>-&gt;art and -&gt;programming</comment>
      <origin>6404</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14448" sha1="mp8e9usli11sgb8bzvf44yg3ozmwark" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite got two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. &lt;code&gt;variants&lt;/code&gt; defines the number of variants in the spriteset and &lt;code&gt;variant_offset&lt;/code&gt; how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it wants anotherone.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default action is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;&lt;end&gt;&lt;/code&gt; tag, the animation stops and the sprite animation is set back into the "stand" state. This behavior is useful for one time actions like attacking, for example.

The end tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>mp8e9usli11sgb8bzvf44yg3ozmwark</sha1>
    </revision>
    <revision>
      <id>8178</id>
      <parentid>6404</parentid>
      <timestamp>2007-11-28T05:15:57Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;sprite&amp;gt; */ Grammer</comment>
      <origin>8178</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14475" sha1="er3sl8m77jotbyvn2tbge4omnj58r41" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default action is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===

each of them defines one frame of the animation. the required properties are &lt;code&gt;index&lt;/code&gt; and optional &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

an optional property is &lt;code&gt;delay&lt;/code&gt;. every frame is displayed for &lt;code&gt;delay&lt;/code&gt; millisecounds and then replaced by the next frame in sequence. when the last frame is reached the sequence starts with the first frame again. when no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

Each &lt;code&gt;frame&lt;/code&gt; element can optionally have the properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;&lt;end&gt;&lt;/code&gt; tag, the animation stops and the sprite animation is set back into the "stand" state. This behavior is useful for one time actions like attacking, for example.

The end tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>er3sl8m77jotbyvn2tbge4omnj58r41</sha1>
    </revision>
    <revision>
      <id>8179</id>
      <parentid>8178</parentid>
      <timestamp>2007-11-28T05:27:25Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* &amp;lt;frame&amp;gt; */ Grammer</comment>
      <origin>8179</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14440" sha1="1amp3y9s8emp6snfr2f28nhu2gi2z9i" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default action is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it s replced by the next frame in the sequence. The sequence restarts when the lasT frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
&lt;code&gt;sequence&lt;/code&gt; tag does not only define one animation phase but multiple phases. Its properties are &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; which are all required. The delay is the delay in ms between each phase. the properties &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; define the first and the last index of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;&lt;end&gt;&lt;/code&gt; tag, the animation stops and the sprite animation is set back into the "stand" state. This behavior is useful for one time actions like attacking, for example.

The end tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>1amp3y9s8emp6snfr2f28nhu2gi2z9i</sha1>
    </revision>
    <revision>
      <id>8180</id>
      <parentid>8179</parentid>
      <timestamp>2007-11-28T05:34:08Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;sequence&amp;gt; */ Grammer</comment>
      <origin>8180</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14453" sha1="lcceoz4iykj3j7b9xeku4xvq0hgrsfr" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default action is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it s replced by the next frame in the sequence. The sequence restarts when the lasT frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one ov more phases of animation. It has The required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;&lt;end&gt;&lt;/code&gt; tag, the animation stops and the sprite animation is set back into the "stand" state. This behavior is useful for one time actions like attacking, for example.

The end tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>lcceoz4iykj3j7b9xeku4xvq0hgrsfr</sha1>
    </revision>
    <revision>
      <id>8181</id>
      <parentid>8180</parentid>
      <timestamp>2007-11-28T05:38:28Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;end&amp;gt; */ Grammer</comment>
      <origin>8181</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14434" sha1="fx5c4fkqjri2vjtpmc0nlkwsmpkyea9" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default action is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it s replced by the next frame in the sequence. The sequence restarts when the lasT frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one ov more phases of animation. It has The required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>fx5c4fkqjri2vjtpmc0nlkwsmpkyea9</sha1>
    </revision>
    <revision>
      <id>8381</id>
      <parentid>8181</parentid>
      <timestamp>2008-01-04T15:26:36Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;animation&amp;gt; */ action -&gt; direction and removed last paragraph that has nothing to do with this section</comment>
      <origin>8381</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14286" sha1="mwzyfnmpz9xl67wltqa0x2feuxuoaud" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it s replced by the next frame in the sequence. The sequence restarts when the lasT frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one ov more phases of animation. It has The required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>mwzyfnmpz9xl67wltqa0x2feuxuoaud</sha1>
    </revision>
    <revision>
      <id>8382</id>
      <parentid>8381</parentid>
      <timestamp>2008-01-04T15:28:02Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;frame&amp;gt; */ Spelling</comment>
      <origin>8382</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14288" sha1="glkddltpr76ffh0bqk3ft5z4h8ahdjs" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one ov more phases of animation. It has The required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>glkddltpr76ffh0bqk3ft5z4h8ahdjs</sha1>
    </revision>
    <revision>
      <id>8383</id>
      <parentid>8382</parentid>
      <timestamp>2008-01-04T15:30:19Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* &amp;lt;sequence&amp;gt; */ some small fixes</comment>
      <origin>8383</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14289" sha1="p0rvrogs9g1ix3co0yhw9eks21gobeu" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>p0rvrogs9g1ix3co0yhw9eks21gobeu</sha1>
    </revision>
    <revision>
      <id>8384</id>
      <parentid>8383</parentid>
      <timestamp>2008-01-05T04:35:01Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* &amp;lt;animation&amp;gt; */ that sentence DOES make sense.</comment>
      <origin>8384</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14440" sha1="sz0bxozfonp93g21j52cq9c2epv3f32" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

==== Since inheritance ====

Ability to extend one spriteset from another, while overriding imagesets and possibly also adding new ones and redefining specific animations:

&lt;pre&gt;
&lt;sprite extends="other-sprite-file.xml"&gt;
 &lt;imageset name="base" ... /&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

==== Including other spritesets ====

Mentioned by Matt, we could have a generic import/include element. This would even allow you to combine several spritesets together. Below the assumption is that you can only define an imageset once while animations can be redefined (actually the same as with the inheritance approach above). This prevents us from loading imagesets unnecessarily and allows us to verify the validity of animation definitions as we encounter them.

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.
===Static hairstyles===
These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;
===Standard animated hairstyles===
These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>sz0bxozfonp93g21j52cq9c2epv3f32</sha1>
    </revision>
    <revision>
      <id>10552</id>
      <parentid>8384</parentid>
      <timestamp>2008-11-04T20:12:02Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Moved suggested addition to reference, since it was implemented</comment>
      <origin>10552</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14033" sha1="erg8m08ljaal9e0he61ug0sz5wez0yh" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
 &lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

=== sequences based on default sequences ===
After reflecting on this idea (and the above suggestion) I think a first issue to solve is to reduce the amount of duplicated definitions. For example, at the moment every monster uses the exact same frame size and animation frames. Hence, it would be interesting if the defined sprite could take the actual imageset it uses as a parameter instead of specifying this on its own. This way we can define a monster like:

&lt;pre&gt;
&lt;sprite name="monster-walking-default"&gt;
 &lt;imageset name="base" /&gt;
 ...
&lt;/sprite&gt;

&lt;being name="Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;

&lt;being name="Red Scorpion"&gt;
 &lt;sprite ref="monster-walking-default"&gt;
  &lt;with-imageset name="base" src="scorpion-red-base.png" width="60" height="60" /&gt;
 &lt;/sprite&gt;
&lt;/being&gt;
&lt;/pre&gt;

Defining an empty imageset (without &lt;code&gt;src&lt;/code&gt; attribute) will make the engine require this imageset to be passed as a parameter whenever the spriteset is referenced.

I'm not convinced yet that the &lt;code&gt;name&lt;/code&gt; attribute of the &lt;code&gt;sprite&lt;/code&gt; element is really necessary. I think I would prefer each sprite to be defined in its own file. However it could be attractive to define multiple things in the same file, but in that case I think we will have to read everything when the client is launched, and only graphics and imagesets can be created lazily (only when necessary). Because the other data consists of just numbers and strings, this should not be really a problem.

Since we're currently not naming sprites and defining each in its own file, the following variations on this approach could be implemented:

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>erg8m08ljaal9e0he61ug0sz5wez0yh</sha1>
    </revision>
    <revision>
      <id>10553</id>
      <parentid>10552</parentid>
      <timestamp>2008-11-04T20:15:50Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Removed more obsolete text</comment>
      <origin>10553</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12305" sha1="9jhxwexnm5rchniu02e6y5egrk3q2p5" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
 &lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>9jhxwexnm5rchniu02e6y5egrk3q2p5</sha1>
    </revision>
    <revision>
      <id>10989</id>
      <parentid>10553</parentid>
      <timestamp>2008-12-16T21:47:05Z</timestamp>
      <contributor>
        <username>BasdoMouri</username>
        <id>1364</id>
      </contributor>
      <minor/>
      <comment>viacdron</comment>
      <origin>10989</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12313" sha1="pv4q84twmw0pg6rjqjnr073bcracn6h" xml:space="preserve">rocaerc
{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
 &lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>pv4q84twmw0pg6rjqjnr073bcracn6h</sha1>
    </revision>
    <revision>
      <id>10990</id>
      <parentid>10989</parentid>
      <timestamp>2008-12-16T22:00:09Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Revert vandalism</comment>
      <origin>10990</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12305" sha1="9jhxwexnm5rchniu02e6y5egrk3q2p5" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
 &lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>9jhxwexnm5rchniu02e6y5egrk3q2p5</sha1>
    </revision>
    <revision>
      <id>11272</id>
      <parentid>10990</parentid>
      <timestamp>2009-01-08T13:54:02Z</timestamp>
      <contributor>
        <username>BasdoMouri</username>
        <id>1364</id>
      </contributor>
      <comment>http://mahohmie.qsh.eu/resource1624.htm</comment>
      <origin>11272</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12645" sha1="9clyp9c8pphz0nofu7d04o238ulmww9" xml:space="preserve">[http://mahohmie.qsh.eu/resource1624.htm movie times for jarhead] [http://spfortne.qsh.eu/20090104-audio-and-video.html audio and video file formats] [http://cnavieltz.strefa.pl/comment-501.htm ac dc hell highway music video] [http://caraines.qsh.eu/zelnexr.htm movies.max] [http://qasletop.is-the-boss.com/caouchibo.html avast 4.6 crack] 
{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
 &lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>9clyp9c8pphz0nofu7d04o238ulmww9</sha1>
    </revision>
    <revision>
      <id>11308</id>
      <parentid>11272</parentid>
      <timestamp>2009-01-08T15:21:29Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>Undo revision 11272 by [[Special:Contributions/BasdoMouri|BasdoMouri]] ([[User talk:BasdoMouri|Talk]])</comment>
      <origin>11308</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12305" sha1="9jhxwexnm5rchniu02e6y5egrk3q2p5" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
 &lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.</text>
      <sha1>9jhxwexnm5rchniu02e6y5egrk3q2p5</sha1>
    </revision>
    <revision>
      <id>11692</id>
      <parentid>11308</parentid>
      <timestamp>2009-02-16T16:57:08Z</timestamp>
      <contributor>
        <username>Crush2</username>
        <id>1261</id>
      </contributor>
      <comment>added template</comment>
      <origin>11692</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12331" sha1="f974qz9mz5aewn9skkof3gba9dx7rn9" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;pre&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/pre&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;pre&gt;
&lt;sprite&gt;
 &lt;imageset name="base" .../&gt;
 &lt;include file="other-sprite-file.xml"/&gt;
 &lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/pre&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle. 
&lt;pre&gt;
hairstyle1.xml
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;

&lt;pre&gt;
hairoffsets.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
&lt;pre&gt;
static_hairstyles_frames.xml

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
End of file
&lt;/pre&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
&lt;pre&gt;
hairstyle2.xml
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;

End of file
&lt;/pre&gt;
&lt;pre&gt;
animated_hairstyles_frames.xml

&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/pre&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.
&lt;pre&gt;
hairstyle3.xml
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;

End of file
&lt;/pre&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.

{{Template:Content XML}}</text>
      <sha1>f974qz9mz5aewn9skkof3gba9dx7rn9</sha1>
    </revision>
    <revision>
      <id>26656</id>
      <parentid>11692</parentid>
      <timestamp>2013-06-14T21:31:08Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>updated xml tags</comment>
      <origin>26656</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12557" sha1="ek60sih2l6zlr0lxokj0o0pjns2uzm9" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;sprite&gt;
	&lt;imageset name="base" .../&gt;
	&lt;include file="other-sprite-file.xml"/&gt;
	&lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle.

hairstyle1.xml 
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

hairoffsets.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;

static_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
hairstyle2.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

animated_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.

hairstyle3.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.

{{Template:Content XML}}</text>
      <sha1>ek60sih2l6zlr0lxokj0o0pjns2uzm9</sha1>
    </revision>
    <revision>
      <id>26764</id>
      <parentid>26656</parentid>
      <timestamp>2013-06-18T20:50:29Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Jaxad0127 moved page [[Animations]] to [[Dev:Animations]]</comment>
      <origin>26764</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12557" sha1="ek60sih2l6zlr0lxokj0o0pjns2uzm9" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;sprite&gt;
	&lt;imageset name="base" .../&gt;
	&lt;include file="other-sprite-file.xml"/&gt;
	&lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle.

hairstyle1.xml 
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

hairoffsets.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;

static_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
hairstyle2.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

animated_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.

hairstyle3.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.

{{Template:Content XML}}</text>
      <sha1>ek60sih2l6zlr0lxokj0o0pjns2uzm9</sha1>
    </revision>
    <revision>
      <id>28751</id>
      <parentid>26764</parentid>
      <timestamp>2013-11-10T00:57:15Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <minor/>
      <comment>/* Starting to correct/update documentation on sprite work and animations. */</comment>
      <origin>28751</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12581" sha1="nm8qcmfx2gnpkgce0wvvhxh2hb6zvoe" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{status_construction}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

possible names:
&lt;pre&gt;
               use-item*
                   |
  attack-bow  cast-magic*
       |           |
 attack-stab  attack-throw*
         \     /       
run*  attack-swing*  sleeping*  dead
 |          |           |        | 
walk     attack        sit      hurt*
   \        \          /         /
               stand
                 |
              default
&lt;/pre&gt;

this table also specifies the substitution precedence. when a specific name is requested but it is not defined the next lower name is used instead. The actions marked with * can be definde without causing an error but there is no situation in the current client program that triggers them.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;sprite&gt;
	&lt;imageset name="base" .../&gt;
	&lt;include file="other-sprite-file.xml"/&gt;
	&lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle.

hairstyle1.xml 
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

hairoffsets.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;

static_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
hairstyle2.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

animated_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.

hairstyle3.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.

{{Template:Content XML}}</text>
      <sha1>nm8qcmfx2gnpkgce0wvvhxh2hb6zvoe</sha1>
    </revision>
    <revision>
      <id>29397</id>
      <parentid>28751</parentid>
      <timestamp>2014-02-20T04:23:20Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* &amp;lt;action&amp;gt; */</comment>
      <origin>29397</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12733" sha1="dm0s56rog3f3895bnc80jdlc09fj06s" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{status_construction}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

Current actions as defined in the base sprite 1.0:
Default
Walk
sit
dead
attack
attack_bow
Directions: NSEW

New actions/directions will be added as the sprite progresses.
Sprite 1.5 work can be seen here [https://trello.com/b/rNnx513z/art-development art trello]

The action type matches the item.xml:
&lt;pre&gt;
    &lt;item id="522"
        image="equipment/weapon/dagger-sharpknife.png"
        name="Sharp Knife"
        description="A really sharp knife. Don't hurt yourself!"
        effect="Damage +10"
        type="equip-1hand"
        weapon-type="knife"
        attack-action="attack"
        weight="150"&gt;
        &lt;sprite&gt;weapon-dagger.xml&lt;/sprite&gt;
        &lt;sound event="strike"&gt;weapons/knives/sharpknife-miss1.ogg&lt;/sound&gt;
    &lt;/item&gt;
&lt;/pre&gt;
Would use attack from the sprite sheets or default if attack is not declared.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;sprite&gt;
	&lt;imageset name="base" .../&gt;
	&lt;include file="other-sprite-file.xml"/&gt;
	&lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

== Suggested additions ==
{{Status_red}}

=== &amp;lt;random&amp;gt; childtag for &amp;lt;animation&amp;gt; ===
Also, it includes an experimental suggestion on specifying that a random frame should be chosen. This should also have an exclude_current_frame thingy, to make sure a frame isn't shown twice or more in a row. Sometimes this may be wanted though.

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle.

hairstyle1.xml 
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

hairoffsets.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;

static_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
hairstyle2.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

animated_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.

hairstyle3.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.

{{Template:Content XML}}</text>
      <sha1>dm0s56rog3f3895bnc80jdlc09fj06s</sha1>
    </revision>
    <revision>
      <id>29398</id>
      <parentid>29397</parentid>
      <timestamp>2014-02-20T04:24:56Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Suggested additions is up to manaplus to provide this now */</comment>
      <origin>29398</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12390" sha1="0wgk5lk8ek1nj2tr185320z0o4lzw6n" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{status_construction}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

Current actions as defined in the base sprite 1.0:
Default
Walk
sit
dead
attack
attack_bow
Directions: NSEW

New actions/directions will be added as the sprite progresses.
Sprite 1.5 work can be seen here [https://trello.com/b/rNnx513z/art-development art trello]

The action type matches the item.xml:
&lt;pre&gt;
    &lt;item id="522"
        image="equipment/weapon/dagger-sharpknife.png"
        name="Sharp Knife"
        description="A really sharp knife. Don't hurt yourself!"
        effect="Damage +10"
        type="equip-1hand"
        weapon-type="knife"
        attack-action="attack"
        weight="150"&gt;
        &lt;sprite&gt;weapon-dagger.xml&lt;/sprite&gt;
        &lt;sound event="strike"&gt;weapons/knives/sharpknife-miss1.ogg&lt;/sound&gt;
    &lt;/item&gt;
&lt;/pre&gt;
Would use attack from the sprite sheets or default if attack is not declared.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;sprite&gt;
	&lt;imageset name="base" .../&gt;
	&lt;include file="other-sprite-file.xml"/&gt;
	&lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

== Implementation proposal of hairstyles by Modanung ==

I think the current system with an xml file for every hairstyle with an index and offset defined for every frame is a bit too much. It also takes a lot of work to correct small errors and to add new hairstyles that may have a different frame size and with it a different offset.
I suggest we split hairstyles up in three catagories:
* Static hairstyles
* Standard animated hairstyles
* Special case hairstyles
On top of the current system we need a variable that defines which gender can use which hairstyles, in every hairstyle's xml-file.

=== Static hairstyles ===

These are hairstyles which only have one frame for each direction and death, so five. All current hairstyles would be static hairstyles. Every individual static hairstyle needs nothing more to be defined then their bitmap, their size and their offset for each direction.
The offset for each seperate frame would be defined in a shared file (say hairoffsets.xml), this summed with the individual hairstyle's offset is the offset for that single frame with that hairstyle.

hairstyle1.xml 
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="static_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="5"&gt;
&lt;gender="male"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle1.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

hairoffsets.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-29" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;offsetX="-1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;offsetX="-1" offsetY ="-25"/&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;offsetX="1" offsetY ="-29"/&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75"/&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-28" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		  &lt;offsetX="0" offsetY ="-29" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;

static_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
	&lt;animation direction="down"&gt;
	  &lt;frame index="0" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="1" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="2" /&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="3" /&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="4"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;

===Standard animated hairstyles===

These are hairstyles that can be compared with hair in SoM or Chrono Trigger, they move as you walk and attack. They have three frames for each direction and death, so thirteen frames all together. These three frames can be devided in a relaxed frame and two extremes. Those two extremes either being up and down or left and right, depending on the hair style. A heavily greased Evil look would wobble up and down as you walk and a pony talk would wave from left to right.
Standard animated hairstyles hairstyles use the same offset as static ones only they have a different file for defining the frames.
hairstyle2.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile="animated_hairstyles_frames.xml"&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="both"&gt;

	&lt;imageset name="base" src="graphics/sprites/hairstyle2.png" width="40" height="40" /&gt;
	&lt;offsetX="0" offsetY ="0" /&gt;
&lt;/syntaxhighlight&gt;

animated_hairstyles_frames.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
		  &lt;frame index="3" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
		  &lt;frame index="6" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
		  &lt;frame index="9" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
		  &lt;frame index="0" delay="75"/&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="1" delay="75" /&gt;
		  &lt;frame index="0" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		  &lt;frame index="2" delay="75" /&gt;
		&lt;/animation&gt;
...etc...
&lt;/syntaxhighlight&gt;
===Special case hairstyles===
And then there are the odd ones, the hairstyles that need a little more freedom. Hairstyles that people want to make wave in the wind, even when the player stands still. Or a birdnest hairstyle with nestlings that constantly open and close their mouth in a random frequency nomatter what you do. I'll take as example a Medusa hairstyle.

hairstyle3.xml
&lt;syntaxhighlight lang="xml"&gt;
&lt;offsetfile="hairoffsets.xml", framefile=0&gt;
&lt;sprite variants="10" variant_offset="13"&gt;
&lt;gender="female"&gt;
&lt;imageset name="base" src="graphics/sprites/hairstyle3.png" width="50" height="60" /&gt;
&lt;offsetX="-5" offsetY ="-10" /&gt;

	&lt;animation direction="down"&gt;
	  &lt;frame index="0" delay="100"/&gt;
	  &lt;frame index="1" delay="100"/&gt;
	  &lt;frame index="2" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="left"&gt;
	  &lt;frame index="3" delay="100"/&gt;
	  &lt;frame index="4" delay="100"/&gt;
	  &lt;frame index="5" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="up"&gt;
	  &lt;frame index="6" delay="100"/&gt;
	  &lt;frame index="7" delay="100"/&gt;
	  &lt;frame index="8" delay="100"/&gt;
	&lt;/animation&gt;
	&lt;animation direction="right"&gt;
	  &lt;frame index="9" delay="100"/&gt;
	  &lt;frame index="10" delay="100"/&gt;
	  &lt;frame index="11" delay="100"/&gt;
	&lt;/animation&gt;
	
&lt;action name="dead" imageset="base"&gt;
	&lt;animation direction="default"&gt;
		&lt;frame index="12"/&gt;
	&lt;/animation&gt;
&lt;/syntaxhighlight&gt;
This hairstyle showes a bunch of snakes on your head that always wave 'n wobble unless you're dead. The animation rolls asychronusly with the attack and walking animations and it also moves when you stand still. But the offsets are in sync. Special hairstyles might also use their own offsets ofcourse
I think this pretty much finished my proposal.

{{Template:Content XML}}</text>
      <sha1>0wgk5lk8ek1nj2tr185320z0o4lzw6n</sha1>
    </revision>
    <revision>
      <id>29400</id>
      <parentid>29398</parentid>
      <timestamp>2014-02-20T04:33:30Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* hairstyles */</comment>
      <origin>29400</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6641" sha1="t31sxs865aj5m9djxq0sjiylkcju1z9" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{status_construction}}
{{Status_green}}

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

Current actions as defined in the base sprite 1.0:
Default
Walk
sit
dead
attack
attack_bow
Directions: NSEW

New actions/directions will be added as the sprite progresses.
Sprite 1.5 work can be seen here [https://trello.com/b/rNnx513z/art-development art trello]

The action type matches the item.xml:
&lt;pre&gt;
    &lt;item id="522"
        image="equipment/weapon/dagger-sharpknife.png"
        name="Sharp Knife"
        description="A really sharp knife. Don't hurt yourself!"
        effect="Damage +10"
        type="equip-1hand"
        weapon-type="knife"
        attack-action="attack"
        weight="150"&gt;
        &lt;sprite&gt;weapon-dagger.xml&lt;/sprite&gt;
        &lt;sound event="strike"&gt;weapons/knives/sharpknife-miss1.ogg&lt;/sound&gt;
    &lt;/item&gt;
&lt;/pre&gt;
Would use attack from the sprite sheets or default if attack is not declared.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;sprite&gt;
	&lt;imageset name="base" .../&gt;
	&lt;include file="other-sprite-file.xml"/&gt;
	&lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

=== hairstyles ===

Most hairstyles which only have one frame for each direction and death, so five frames.
The offset for the hairstyles is standard to either haristlye01.xml or hairstyle13.xml

Currently the hairsprites follow the [http://manaplus.org/items.xml hairsprite convetion]

{{Template:Content XML}}</text>
      <sha1>t31sxs865aj5m9djxq0sjiylkcju1z9</sha1>
    </revision>
    <revision>
      <id>29401</id>
      <parentid>29400</parentid>
      <timestamp>2014-02-20T04:37:42Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* adding note to client documentation */</comment>
      <origin>29401</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6709" sha1="079i7cg4t8zjwqv6n7in4g2ahusnaxp" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

TMW follows the same conventions as laid out by the client [http://manaplus.org/ manaplus]

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

Current actions as defined in the base sprite 1.0:
Default
Walk
sit
dead
attack
attack_bow
Directions: NSEW

New actions/directions will be added as the sprite progresses.
Sprite 1.5 work can be seen here [https://trello.com/b/rNnx513z/art-development art trello]

The action type matches the item.xml:
&lt;pre&gt;
    &lt;item id="522"
        image="equipment/weapon/dagger-sharpknife.png"
        name="Sharp Knife"
        description="A really sharp knife. Don't hurt yourself!"
        effect="Damage +10"
        type="equip-1hand"
        weapon-type="knife"
        attack-action="attack"
        weight="150"&gt;
        &lt;sprite&gt;weapon-dagger.xml&lt;/sprite&gt;
        &lt;sound event="strike"&gt;weapons/knives/sharpknife-miss1.ogg&lt;/sound&gt;
    &lt;/item&gt;
&lt;/pre&gt;
Would use attack from the sprite sheets or default if attack is not declared.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;sprite&gt;
	&lt;imageset name="base" .../&gt;
	&lt;include file="other-sprite-file.xml"/&gt;
	&lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

=== hairstyles ===

Most hairstyles which only have one frame for each direction and death, so five frames.
The offset for the hairstyles is standard to either haristlye01.xml or hairstyle13.xml

Currently the hairsprites follow the [http://manaplus.org/items.xml hairsprite convetion]

{{Template:Content XML}}</text>
      <sha1>079i7cg4t8zjwqv6n7in4g2ahusnaxp</sha1>
    </revision>
    <revision>
      <id>31854</id>
      <parentid>29401</parentid>
      <timestamp>2014-12-17T16:22:56Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* categorizing */</comment>
      <origin>31854</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6734" sha1="iq8dk6zhxmf7nz4qgz1vdvwobysd173" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

TMW follows the same conventions as laid out by the client [http://manaplus.org/ manaplus]

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

Current actions as defined in the base sprite 1.0:
Default
Walk
sit
dead
attack
attack_bow
Directions: NSEW

New actions/directions will be added as the sprite progresses.
Sprite 1.5 work can be seen here [https://trello.com/b/rNnx513z/art-development art trello]

The action type matches the item.xml:
&lt;pre&gt;
    &lt;item id="522"
        image="equipment/weapon/dagger-sharpknife.png"
        name="Sharp Knife"
        description="A really sharp knife. Don't hurt yourself!"
        effect="Damage +10"
        type="equip-1hand"
        weapon-type="knife"
        attack-action="attack"
        weight="150"&gt;
        &lt;sprite&gt;weapon-dagger.xml&lt;/sprite&gt;
        &lt;sound event="strike"&gt;weapons/knives/sharpknife-miss1.ogg&lt;/sound&gt;
    &lt;/item&gt;
&lt;/pre&gt;
Would use attack from the sprite sheets or default if attack is not declared.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;sprite&gt;
	&lt;imageset name="base" .../&gt;
	&lt;include file="other-sprite-file.xml"/&gt;
	&lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

=== hairstyles ===

Most hairstyles which only have one frame for each direction and death, so five frames.
The offset for the hairstyles is standard to either haristlye01.xml or hairstyle13.xml

Currently the hairsprites follow the [http://manaplus.org/items.xml hairsprite convetion]

{{Template:Content XML}}
[[Category:Development]]</text>
      <sha1>iq8dk6zhxmf7nz4qgz1vdvwobysd173</sha1>
    </revision>
    <revision>
      <id>59464</id>
      <parentid>31854</parentid>
      <timestamp>2024-03-27T03:56:41Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Animations]] to [[Development:Animations]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>31854</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6734" sha1="iq8dk6zhxmf7nz4qgz1vdvwobysd173" xml:space="preserve">{{Category_programming}}
{{Category_art}}
{{Status_green}}

TMW follows the same conventions as laid out by the client [http://manaplus.org/ manaplus]

== Example of a sprite definition ==

The animations of all sprites are defined by xml documents. Here follows an example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;sprite name="player" action="stand"&gt;

	&lt;imageset name="base" src="graphics/sprites/player_male_base.png" width="64" height="64" /&gt;

	&lt;action name="stand" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="0" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;frame index="18" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;frame index="36" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;frame index="54" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="walk" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;frame index="1" delay="75" /&gt;
			&lt;frame index="2" delay="75" /&gt;
			&lt;frame index="3" delay="75" /&gt;
			&lt;frame index="4" delay="75" /&gt;
			&lt;frame index="5" delay="75" /&gt;
			&lt;frame index="6" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="19" end="24" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="37" end="42" delay="75" /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="55" end="60" delay="75" /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

	&lt;action name="attack" imageset="base"&gt;
		&lt;animation direction="down"&gt;
			&lt;sequence start="9" end="12" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="left"&gt;
			&lt;sequence start="27" end="30" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="up"&gt;
			&lt;sequence start="45" end="48" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
		&lt;animation direction="right"&gt;
			&lt;sequence start="63" end="66" delay="75" /&gt;
			&lt;end /&gt;
		&lt;/animation&gt;
	&lt;/action&gt;

&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

So if you want to load the playerset you just load player.xml and it takes care of loading all related images. Of course delays are defined in milliseconds.

== Specifications ==

=== &amp;lt;sprite&amp;gt; ===
A sprite is an object which can carry several animations, hence we call the root element the &lt;code&gt;sprite&lt;/code&gt;. The sprite tag has two optional properties &lt;code&gt;variants&lt;/code&gt; and &lt;code&gt;variant_offset&lt;/code&gt;. These are required when there are multiple very similar versions of a sprite in one spriteset. One example for this are the hairset spritesets. The &lt;code&gt;variants&lt;/code&gt; property defines the number of variants in the spriteset and the &lt;code&gt;variant_offset&lt;/code&gt; property how many sprites are between the first sprites of the variants. When defining multiple variants you only define the animation sequences of the first variant. the engine then shifts the index parameters when it needs another.

=== &amp;lt;action&amp;gt; ===
collection of the animation in different directions that belong to an action the character can perform. the properties are the imageset the animation phases are taken from and the name of the action. 

Current actions as defined in the base sprite 1.0:
Default
Walk
sit
dead
attack
attack_bow
Directions: NSEW

New actions/directions will be added as the sprite progresses.
Sprite 1.5 work can be seen here [https://trello.com/b/rNnx513z/art-development art trello]

The action type matches the item.xml:
&lt;pre&gt;
    &lt;item id="522"
        image="equipment/weapon/dagger-sharpknife.png"
        name="Sharp Knife"
        description="A really sharp knife. Don't hurt yourself!"
        effect="Damage +10"
        type="equip-1hand"
        weapon-type="knife"
        attack-action="attack"
        weight="150"&gt;
        &lt;sprite&gt;weapon-dagger.xml&lt;/sprite&gt;
        &lt;sound event="strike"&gt;weapons/knives/sharpknife-miss1.ogg&lt;/sound&gt;
    &lt;/item&gt;
&lt;/pre&gt;
Would use attack from the sprite sheets or default if attack is not declared.

=== &amp;lt;animation&amp;gt; ===
Defines an animation sequence that should be displayed when the sprite object faces in a specific direction (attribute "direction").

the possible directions are:
&lt;pre&gt;
up
down
left
right
default
&lt;/pre&gt;

when a specific direction isn't provided, the default direction is used instead. When no default direction is defined, the first defined direction is used.

Every &lt;code&gt;&lt;animation&gt;&lt;/code&gt; has one or more &lt;code&gt;frame&lt;/code&gt; or &lt;code&gt;sequence&lt;/code&gt; child elements and an optional &lt;code&gt;&lt;end&gt;&lt;/code&gt; element.

=== &amp;lt;frame&amp;gt; ===
Defines one frame of the animation. The only required property is &lt;code&gt;index&lt;/code&gt;.  Optional properties include &lt;code&gt;offsetX&lt;/code&gt;, &lt;code&gt;offsetY&lt;/code&gt; and &lt;code&gt;delay&lt;/code&gt;.

&lt;code&gt;index&lt;/code&gt; defines the index of the graphic on the spriteset. 

The &lt;code&gt;delay&lt;/code&gt; property specifies the number of milliseconds the frame is displayed before it is replaced by the next frame in the sequence. The sequence restarts when the last frame is finished. When no delay is specified (or specified as "0") the animation doesn't continue when this &lt;code&gt;frame&lt;/code&gt; is reached.

The &lt;code&gt;frame&lt;/code&gt; element has the optional properties &lt;code&gt;offsetX&lt;/code&gt; and &lt;code&gt;offsetY&lt;/code&gt; to specify an offset from the default drawing position for that frame. This allows the animation of for example the hairset (or any equipment) to reuse the same frames with different offsets.

=== &amp;lt;sequence&amp;gt; ===
The &lt;code&gt;sequence&lt;/code&gt; tag defines one or more phases of animation. It has the required properties &lt;code&gt;delay&lt;/code&gt;, &lt;code&gt;start&lt;/code&gt;, and &lt;code&gt;end&lt;/code&gt;. The &lt;code&gt;delay&lt;/code&gt; property specifies the delay in milliseconds between each phase. The &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties define the first and the last indexes of the animation sequence on the spritesheet.

=== &amp;lt;end&amp;gt; ===
When the animation sequence reaches an &lt;code&gt;end&lt;/code&gt; tag, the animation stops and the sprite animation is returned to the "stand" state. This can be used for one time action sequences like attacking. This tag has no properties.

=== &amp;lt;include&amp;gt; ===

Can be used to include another sprite definition file. If you want to override the images, you need to specify them ''before'' the include element. If you want to override any animations, you have to do so ''after'' the include element. Example:

&lt;syntaxhighlight lang="xml"&gt;
&lt;sprite&gt;
	&lt;imageset name="base" .../&gt;
	&lt;include file="other-sprite-file.xml"/&gt;
	&lt;!-- possibly override or introduce new actions --&gt;
&lt;/sprite&gt;
&lt;/syntaxhighlight&gt;

=== hairstyles ===

Most hairstyles which only have one frame for each direction and death, so five frames.
The offset for the hairstyles is standard to either haristlye01.xml or hairstyle13.xml

Currently the hairsprites follow the [http://manaplus.org/items.xml hairsprite convetion]

{{Template:Content XML}}
[[Category:Development]]</text>
      <sha1>iq8dk6zhxmf7nz4qgz1vdvwobysd173</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Bit mask tutorial</title>
    <ns>0</ns>
    <id>10065</id>
    <revision>
      <id>40468</id>
      <timestamp>2016-04-07T17:29:23Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Add Better Bitmask tutorial */</comment>
      <origin>40468</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3931" sha1="ju9ltrgh7r6c4ip6swajiakrph2j0d8" xml:space="preserve">
==Bit Masking Easy Reference Chart==
        |-------------------------------------------------------------------------------------|
  Byte  |0              |1                    |2                      |3                      |
        |-------------------------------------------------------------------------------------|
 Nibble |0      |1      |2        |3          |4          |5          |6          |7          |
        |-------------------------------------------------------------------------------------|
 2 Bits |0  |1  |2  |3  |4  |5    |6    |7    |8    |9    |10   |11   |12   |13   |14   |15   |
        |-------------------------------------------------------------------------------------|
 Bits   |0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|
        |-------------------------------------------------------------------------------------|

* All variables haves 4 Bytes, 8 Nibbles, 16 2Bits and/or 32 bits.
** Byte range 0-255
** Nibble range 0-15
** 2Bit range 0-3
** bit range 0 or 1

==One Nibble Translated==
* Binary = Decimal
** 0000   = 0
** 0001   = 1
** 0010   = 2
** 0011   = 3
** 0100   = 4
** 0101   = 5
** 0110   = 6
** 0111   = 7
** 1000   = 8
** 1001   = 9
** 1010   = 10
** 1011   = 11
** 1100   = 12
** 1101   = 13
** 1110   = 14
** 1111   = 15

*** Note: Therefore Setting Bits 4-7 to 1 will make Nibble 1 15. Therefore Setting Bits 0-7 will make Nibble 0 &amp; 1 15, and Byte 0 255

==Linear Quest Var==
* BYTE:
**     0: Step1.
**     1: Step2.
**     ...
**     255: Step256.
* Nibble:
**     0: Step1.
**     1: Step2.
**     ...
**     14: Step16.

==Non-linear Quest Var==
*       BYTE: Main Quest Line
**           NIBBLE: Current-Step
***               BIT: Step
***               BIT: Step
***               BIT: Step
***               BIT: Step
**           NIBBLE: Sub-Quest
***               0-15: Step 1-16

Dev Note: There are plans to make 64 bit quest variables.


001-1,40,36,0|script|BitMaskDebug|175
{

    mes "[Bit Mask Debug]";
    mes "\"What you wyou like to do?\"";
    menu
        "Shift Byte 1.", L_ByteShift,
        "Shift Nibble 0.", L_NibbleShift,
        "Shift Bit 4.", L_BitShift,
        "Done.", L_Close;

L_ByteShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; BYTE_1_MASK) &gt;&gt; BYTE_1_SHIFT);
    message strcharinfo(0), @debugexample;
    if (@debugexample == 175) 
        goto L_ByteUnset;

    mes "Byte 1 set to 175";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(BYTE_1_MASK) | (175 &lt;&lt; BYTE_1_SHIFT));
    goto L_Close;

L_ByteUnset:
    mes "Byte 1 set to 0";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(BYTE_1_MASK) | (0 &lt;&lt; BYTE_1_SHIFT));
    goto L_Close;

L_NibbleShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; NIBBLE_0_MASK) &gt;&gt; NIBBLE_0_SHIFT);
    message strcharinfo(0), @debugexample;
    if (@debugexample == 10) 
        goto L_NibbleUnset;

    mes "Nibble 0 set to 10";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(NIBBLE_0_MASK) | (10 &lt;&lt; NIBBLE_0_SHIFT));
    goto L_Close;

L_NibbleUnset:
    mes "Nibble 0 set to 0";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(NIBBLE_0_MASK) | (0 &lt;&lt; NIBBLE_0_SHIFT));
    goto L_Close;

L_BitShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; NIBBLE_1_MASK) &gt;&gt; NIBBLE_1_SHIFT);
    message strcharinfo(0), @debugexample;
    if (DEBUGEXAMPLE &amp; (1 &lt;&lt; 4))
        goto L_BitUnset; 

    mes "Bit 4 Set to 1";
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 4);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 5);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 6);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 7);
    goto L_Close;

L_BitUnset:
    mes "Bit 4 Set to 0";
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 4);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 5);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 6);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 7);
    goto L_Close;

L_Close:
    set @debugexample, 0;
    close;

OnInit:
    if (debug)
        end;
    disablenpc "BitMaskDebug";
    end;
}</text>
      <sha1>ju9ltrgh7r6c4ip6swajiakrph2j0d8</sha1>
    </revision>
    <revision>
      <id>40470</id>
      <parentid>40468</parentid>
      <timestamp>2016-04-07T17:35:33Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <minor/>
      <comment>Wushin moved page [[Bit mask tutorial]] to [[Dev:Bit mask tutorial]]</comment>
      <origin>40470</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3931" sha1="ju9ltrgh7r6c4ip6swajiakrph2j0d8" xml:space="preserve">
==Bit Masking Easy Reference Chart==
        |-------------------------------------------------------------------------------------|
  Byte  |0              |1                    |2                      |3                      |
        |-------------------------------------------------------------------------------------|
 Nibble |0      |1      |2        |3          |4          |5          |6          |7          |
        |-------------------------------------------------------------------------------------|
 2 Bits |0  |1  |2  |3  |4  |5    |6    |7    |8    |9    |10   |11   |12   |13   |14   |15   |
        |-------------------------------------------------------------------------------------|
 Bits   |0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|
        |-------------------------------------------------------------------------------------|

* All variables haves 4 Bytes, 8 Nibbles, 16 2Bits and/or 32 bits.
** Byte range 0-255
** Nibble range 0-15
** 2Bit range 0-3
** bit range 0 or 1

==One Nibble Translated==
* Binary = Decimal
** 0000   = 0
** 0001   = 1
** 0010   = 2
** 0011   = 3
** 0100   = 4
** 0101   = 5
** 0110   = 6
** 0111   = 7
** 1000   = 8
** 1001   = 9
** 1010   = 10
** 1011   = 11
** 1100   = 12
** 1101   = 13
** 1110   = 14
** 1111   = 15

*** Note: Therefore Setting Bits 4-7 to 1 will make Nibble 1 15. Therefore Setting Bits 0-7 will make Nibble 0 &amp; 1 15, and Byte 0 255

==Linear Quest Var==
* BYTE:
**     0: Step1.
**     1: Step2.
**     ...
**     255: Step256.
* Nibble:
**     0: Step1.
**     1: Step2.
**     ...
**     14: Step16.

==Non-linear Quest Var==
*       BYTE: Main Quest Line
**           NIBBLE: Current-Step
***               BIT: Step
***               BIT: Step
***               BIT: Step
***               BIT: Step
**           NIBBLE: Sub-Quest
***               0-15: Step 1-16

Dev Note: There are plans to make 64 bit quest variables.


001-1,40,36,0|script|BitMaskDebug|175
{

    mes "[Bit Mask Debug]";
    mes "\"What you wyou like to do?\"";
    menu
        "Shift Byte 1.", L_ByteShift,
        "Shift Nibble 0.", L_NibbleShift,
        "Shift Bit 4.", L_BitShift,
        "Done.", L_Close;

L_ByteShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; BYTE_1_MASK) &gt;&gt; BYTE_1_SHIFT);
    message strcharinfo(0), @debugexample;
    if (@debugexample == 175) 
        goto L_ByteUnset;

    mes "Byte 1 set to 175";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(BYTE_1_MASK) | (175 &lt;&lt; BYTE_1_SHIFT));
    goto L_Close;

L_ByteUnset:
    mes "Byte 1 set to 0";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(BYTE_1_MASK) | (0 &lt;&lt; BYTE_1_SHIFT));
    goto L_Close;

L_NibbleShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; NIBBLE_0_MASK) &gt;&gt; NIBBLE_0_SHIFT);
    message strcharinfo(0), @debugexample;
    if (@debugexample == 10) 
        goto L_NibbleUnset;

    mes "Nibble 0 set to 10";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(NIBBLE_0_MASK) | (10 &lt;&lt; NIBBLE_0_SHIFT));
    goto L_Close;

L_NibbleUnset:
    mes "Nibble 0 set to 0";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(NIBBLE_0_MASK) | (0 &lt;&lt; NIBBLE_0_SHIFT));
    goto L_Close;

L_BitShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; NIBBLE_1_MASK) &gt;&gt; NIBBLE_1_SHIFT);
    message strcharinfo(0), @debugexample;
    if (DEBUGEXAMPLE &amp; (1 &lt;&lt; 4))
        goto L_BitUnset; 

    mes "Bit 4 Set to 1";
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 4);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 5);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 6);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 7);
    goto L_Close;

L_BitUnset:
    mes "Bit 4 Set to 0";
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 4);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 5);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 6);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 7);
    goto L_Close;

L_Close:
    set @debugexample, 0;
    close;

OnInit:
    if (debug)
        end;
    disablenpc "BitMaskDebug";
    end;
}</text>
      <sha1>ju9ltrgh7r6c4ip6swajiakrph2j0d8</sha1>
    </revision>
    <revision>
      <id>40473</id>
      <parentid>40470</parentid>
      <timestamp>2016-04-07T18:08:29Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <origin>40473</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4545" sha1="rgkwszx4p4jjcp9gg4nk5z0ofs875mk" xml:space="preserve">
==Bit Masking Easy Reference Chart==
&lt;table&gt;
    &lt;tr&gt;
        &lt;th&gt;long word&lt;/th&gt;
        &lt;td colspan="32"&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;word&lt;/th&gt;
        &lt;td colspan="16"&gt;0&lt;/td&gt;&lt;td colspan="16"&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;byte&lt;/th&gt;
        &lt;td colspan="8"&gt;0&lt;/td&gt;&lt;td colspan="8"&gt;1&lt;/td&gt;&lt;td colspan="8"&gt;2&lt;/td&gt;&lt;td colspan="8"&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;nibble&lt;/th&gt;
        &lt;td colspan="4"&gt;0&lt;/td&gt;&lt;td colspan="4"&gt;1&lt;/td&gt;&lt;td colspan="4"&gt;2&lt;/td&gt;&lt;td colspan="4"&gt;3&lt;/td&gt;
        &lt;td colspan="4"&gt;4&lt;/td&gt;&lt;td colspan="4"&gt;5&lt;/td&gt;&lt;td colspan="4"&gt;6&lt;/td&gt;&lt;td colspan="4"&gt;7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;2-bit&lt;/th&gt;
        &lt;td colspan="2"&gt;0&lt;/td&gt;&lt;td colspan="2"&gt;1&lt;/td&gt;&lt;td colspan="2"&gt;2&lt;/td&gt;&lt;td colspan="2"&gt;3&lt;/td&gt;
        &lt;td colspan="2"&gt;4&lt;/td&gt;&lt;td colspan="2"&gt;5&lt;/td&gt;&lt;td colspan="2"&gt;6&lt;/td&gt;&lt;td colspan="2"&gt;7&lt;/td&gt;
        &lt;td colspan="2"&gt;8&lt;/td&gt;&lt;td colspan="2"&gt;9&lt;/td&gt;&lt;td colspan="2"&gt;10&lt;/td&gt;&lt;td colspan="2"&gt;11&lt;/td&gt;
        &lt;td colspan="2"&gt;12&lt;/td&gt;&lt;td colspan="2"&gt;13&lt;/td&gt;&lt;td colspan="2"&gt;14&lt;/td&gt;&lt;td colspan="2"&gt;15&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;bit&lt;/th&gt;
        &lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;
        &lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;
        &lt;td&gt;8&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;
        &lt;td&gt;12&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;
        &lt;td&gt;16&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;
        &lt;td&gt;20&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;
        &lt;td&gt;24&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;
        &lt;td&gt;28&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

* All variables haves 1 Long Word, 2 Words, 4 Bytes, 8 Nibbles, 16 2Bits and/or 32 bits.
** Byte range 0-255
** Nibble range 0-15
** 2Bit range 0-3
** bit range 0 or 1

==One Nibble Translated==
* Binary = Decimal
** 0000   = 0
** 0001   = 1
** 0010   = 2
** 0011   = 3
** 0100   = 4
** 0101   = 5
** 0110   = 6
** 0111   = 7
** 1000   = 8
** 1001   = 9
** 1010   = 10
** 1011   = 11
** 1100   = 12
** 1101   = 13
** 1110   = 14
** 1111   = 15

*** Note: Therefore Setting Bits 4-7 to 1 will make Nibble 1 15. Therefore Setting Bits 0-7 will make Nibble 0 &amp; 1 15, and Byte 0 255

==Linear Quest Var==
* BYTE:
**     0: Step1.
**     1: Step2.
**     ...
**     255: Step256.
* Nibble:
**     0: Step1.
**     1: Step2.
**     ...
**     14: Step16.

==Non-linear Quest Var==
*       BYTE: Main Quest Line
**           NIBBLE: Current-Step
***               BIT: Step
***               BIT: Step
***               BIT: Step
***               BIT: Step
**           NIBBLE: Sub-Quest
***               0-15: Step 1-16

Dev Note: There are plans to make 64 bit quest variables.


001-1,40,36,0|script|BitMaskDebug|175
{

    mes "[Bit Mask Debug]";
    mes "\"What you wyou like to do?\"";
    menu
        "Shift Byte 1.", L_ByteShift,
        "Shift Nibble 0.", L_NibbleShift,
        "Shift Bit 4.", L_BitShift,
        "Done.", L_Close;

L_ByteShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; BYTE_1_MASK) &gt;&gt; BYTE_1_SHIFT);
    message strcharinfo(0), @debugexample;
    if (@debugexample == 175) 
        goto L_ByteUnset;

    mes "Byte 1 set to 175";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(BYTE_1_MASK) | (175 &lt;&lt; BYTE_1_SHIFT));
    goto L_Close;

L_ByteUnset:
    mes "Byte 1 set to 0";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(BYTE_1_MASK) | (0 &lt;&lt; BYTE_1_SHIFT));
    goto L_Close;

L_NibbleShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; NIBBLE_0_MASK) &gt;&gt; NIBBLE_0_SHIFT);
    message strcharinfo(0), @debugexample;
    if (@debugexample == 10) 
        goto L_NibbleUnset;

    mes "Nibble 0 set to 10";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(NIBBLE_0_MASK) | (10 &lt;&lt; NIBBLE_0_SHIFT));
    goto L_Close;

L_NibbleUnset:
    mes "Nibble 0 set to 0";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(NIBBLE_0_MASK) | (0 &lt;&lt; NIBBLE_0_SHIFT));
    goto L_Close;

L_BitShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; NIBBLE_1_MASK) &gt;&gt; NIBBLE_1_SHIFT);
    message strcharinfo(0), @debugexample;
    if (DEBUGEXAMPLE &amp; (1 &lt;&lt; 4))
        goto L_BitUnset; 

    mes "Bit 4 Set to 1";
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 4);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 5);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 6);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 7);
    goto L_Close;

L_BitUnset:
    mes "Bit 4 Set to 0";
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 4);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 5);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 6);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 7);
    goto L_Close;

L_Close:
    set @debugexample, 0;
    close;

OnInit:
    if (debug)
        end;
    disablenpc "BitMaskDebug";
    end;
}</text>
      <sha1>rgkwszx4p4jjcp9gg4nk5z0ofs875mk</sha1>
    </revision>
    <revision>
      <id>59466</id>
      <parentid>40473</parentid>
      <timestamp>2024-03-27T03:56:42Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Bit mask tutorial]] to [[Development:Bit mask tutorial]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>40473</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4545" sha1="rgkwszx4p4jjcp9gg4nk5z0ofs875mk" xml:space="preserve">
==Bit Masking Easy Reference Chart==
&lt;table&gt;
    &lt;tr&gt;
        &lt;th&gt;long word&lt;/th&gt;
        &lt;td colspan="32"&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;word&lt;/th&gt;
        &lt;td colspan="16"&gt;0&lt;/td&gt;&lt;td colspan="16"&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;byte&lt;/th&gt;
        &lt;td colspan="8"&gt;0&lt;/td&gt;&lt;td colspan="8"&gt;1&lt;/td&gt;&lt;td colspan="8"&gt;2&lt;/td&gt;&lt;td colspan="8"&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;nibble&lt;/th&gt;
        &lt;td colspan="4"&gt;0&lt;/td&gt;&lt;td colspan="4"&gt;1&lt;/td&gt;&lt;td colspan="4"&gt;2&lt;/td&gt;&lt;td colspan="4"&gt;3&lt;/td&gt;
        &lt;td colspan="4"&gt;4&lt;/td&gt;&lt;td colspan="4"&gt;5&lt;/td&gt;&lt;td colspan="4"&gt;6&lt;/td&gt;&lt;td colspan="4"&gt;7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;2-bit&lt;/th&gt;
        &lt;td colspan="2"&gt;0&lt;/td&gt;&lt;td colspan="2"&gt;1&lt;/td&gt;&lt;td colspan="2"&gt;2&lt;/td&gt;&lt;td colspan="2"&gt;3&lt;/td&gt;
        &lt;td colspan="2"&gt;4&lt;/td&gt;&lt;td colspan="2"&gt;5&lt;/td&gt;&lt;td colspan="2"&gt;6&lt;/td&gt;&lt;td colspan="2"&gt;7&lt;/td&gt;
        &lt;td colspan="2"&gt;8&lt;/td&gt;&lt;td colspan="2"&gt;9&lt;/td&gt;&lt;td colspan="2"&gt;10&lt;/td&gt;&lt;td colspan="2"&gt;11&lt;/td&gt;
        &lt;td colspan="2"&gt;12&lt;/td&gt;&lt;td colspan="2"&gt;13&lt;/td&gt;&lt;td colspan="2"&gt;14&lt;/td&gt;&lt;td colspan="2"&gt;15&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;bit&lt;/th&gt;
        &lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;
        &lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;
        &lt;td&gt;8&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;
        &lt;td&gt;12&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;
        &lt;td&gt;16&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;
        &lt;td&gt;20&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;
        &lt;td&gt;24&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;
        &lt;td&gt;28&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

* All variables haves 1 Long Word, 2 Words, 4 Bytes, 8 Nibbles, 16 2Bits and/or 32 bits.
** Byte range 0-255
** Nibble range 0-15
** 2Bit range 0-3
** bit range 0 or 1

==One Nibble Translated==
* Binary = Decimal
** 0000   = 0
** 0001   = 1
** 0010   = 2
** 0011   = 3
** 0100   = 4
** 0101   = 5
** 0110   = 6
** 0111   = 7
** 1000   = 8
** 1001   = 9
** 1010   = 10
** 1011   = 11
** 1100   = 12
** 1101   = 13
** 1110   = 14
** 1111   = 15

*** Note: Therefore Setting Bits 4-7 to 1 will make Nibble 1 15. Therefore Setting Bits 0-7 will make Nibble 0 &amp; 1 15, and Byte 0 255

==Linear Quest Var==
* BYTE:
**     0: Step1.
**     1: Step2.
**     ...
**     255: Step256.
* Nibble:
**     0: Step1.
**     1: Step2.
**     ...
**     14: Step16.

==Non-linear Quest Var==
*       BYTE: Main Quest Line
**           NIBBLE: Current-Step
***               BIT: Step
***               BIT: Step
***               BIT: Step
***               BIT: Step
**           NIBBLE: Sub-Quest
***               0-15: Step 1-16

Dev Note: There are plans to make 64 bit quest variables.


001-1,40,36,0|script|BitMaskDebug|175
{

    mes "[Bit Mask Debug]";
    mes "\"What you wyou like to do?\"";
    menu
        "Shift Byte 1.", L_ByteShift,
        "Shift Nibble 0.", L_NibbleShift,
        "Shift Bit 4.", L_BitShift,
        "Done.", L_Close;

L_ByteShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; BYTE_1_MASK) &gt;&gt; BYTE_1_SHIFT);
    message strcharinfo(0), @debugexample;
    if (@debugexample == 175) 
        goto L_ByteUnset;

    mes "Byte 1 set to 175";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(BYTE_1_MASK) | (175 &lt;&lt; BYTE_1_SHIFT));
    goto L_Close;

L_ByteUnset:
    mes "Byte 1 set to 0";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(BYTE_1_MASK) | (0 &lt;&lt; BYTE_1_SHIFT));
    goto L_Close;

L_NibbleShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; NIBBLE_0_MASK) &gt;&gt; NIBBLE_0_SHIFT);
    message strcharinfo(0), @debugexample;
    if (@debugexample == 10) 
        goto L_NibbleUnset;

    mes "Nibble 0 set to 10";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(NIBBLE_0_MASK) | (10 &lt;&lt; NIBBLE_0_SHIFT));
    goto L_Close;

L_NibbleUnset:
    mes "Nibble 0 set to 0";
    set DEBUGEXAMPLE, (DEBUGEXAMPLE &amp; ~(NIBBLE_0_MASK) | (0 &lt;&lt; NIBBLE_0_SHIFT));
    goto L_Close;

L_BitShift:
    set @debugexample, ((DEBUGEXAMPLE &amp; NIBBLE_1_MASK) &gt;&gt; NIBBLE_1_SHIFT);
    message strcharinfo(0), @debugexample;
    if (DEBUGEXAMPLE &amp; (1 &lt;&lt; 4))
        goto L_BitUnset; 

    mes "Bit 4 Set to 1";
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 4);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 5);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 6);
    set DEBUGEXAMPLE, DEBUGEXAMPLE | (1 &lt;&lt; 7);
    goto L_Close;

L_BitUnset:
    mes "Bit 4 Set to 0";
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 4);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 5);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 6);
    set DEBUGEXAMPLE, DEBUGEXAMPLE &amp;~ (1 &lt;&lt; 7);
    goto L_Close;

L_Close:
    set @debugexample, 0;
    close;

OnInit:
    if (debug)
        end;
    disablenpc "BitMaskDebug";
    end;
}</text>
      <sha1>rgkwszx4p4jjcp9gg4nk5z0ofs875mk</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Color XML</title>
    <ns>0</ns>
    <id>3466</id>
    <revision>
      <id>9866</id>
      <timestamp>2008-08-14T01:45:59Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>Initial draft</comment>
      <origin>9866</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1129" sha1="gpgfp74obfyajfpg8bpb0ujuly2k6cx" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;name&lt;/code&gt;s and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;</text>
      <sha1>gpgfp74obfyajfpg8bpb0ujuly2k6cx</sha1>
    </revision>
    <revision>
      <id>9867</id>
      <parentid>9866</parentid>
      <timestamp>2008-08-14T01:52:06Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* Usage */ Expand on item database</comment>
      <origin>9867</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1355" sha1="200bab52cfu7p45zt1y896rvpsop24q" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;name&lt;/code&gt;s and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color index to use. The first entry is number one. Undyed items use index 0.

===Others===
I cannot think of other uses for these files at the moment.</text>
      <sha1>200bab52cfu7p45zt1y896rvpsop24q</sha1>
    </revision>
    <revision>
      <id>9868</id>
      <parentid>9867</parentid>
      <timestamp>2008-08-14T01:56:54Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* Item Database */ Add item name changing</comment>
      <origin>9868</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1475" sha1="2n70mownh67gm6wh9lqe7n9dl3iy7bd" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;name&lt;/code&gt;s and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color index to use. The first entry is number one. Undyed items use index 0. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").

===Others===
I cannot think of other uses for these files at the moment.</text>
      <sha1>2n70mownh67gm6wh9lqe7n9dl3iy7bd</sha1>
    </revision>
    <revision>
      <id>9882</id>
      <parentid>9868</parentid>
      <timestamp>2008-08-14T13:59:10Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* &amp;lt;color&amp;gt; */ Add id attribute</comment>
      <origin>9882</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1576" sha1="8k23atf2nyl3zh3fyl3mqhincacol2x" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color index to use. The first entry is number one. Undyed items use index 0. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").

===Others===
I cannot think of other uses for these files at the moment.</text>
      <sha1>8k23atf2nyl3zh3fyl3mqhincacol2x</sha1>
    </revision>
    <revision>
      <id>9883</id>
      <parentid>9882</parentid>
      <timestamp>2008-08-14T14:03:03Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* Item Database */ Fix ID info</comment>
      <origin>9883</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1516" sha1="e3mm4bl8g3v1pti0h5bkb6q9hoic5qo" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color id to use. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").

===Others===
I cannot think of other uses for these files at the moment.</text>
      <sha1>e3mm4bl8g3v1pti0h5bkb6q9hoic5qo</sha1>
    </revision>
    <revision>
      <id>9888</id>
      <parentid>9883</parentid>
      <timestamp>2008-08-14T14:31:16Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>Add links to example files</comment>
      <origin>9888</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1843" sha1="m5ysvn41tkxatj7s7pb70so850dmq99" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color id to use. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").

===Others===
I cannot think of other uses for these files at the moment.

==Examples==
I've made some examples based on the colors in the client code and item databases:
*[[User:Jaxad0127/Color files/Hair colors|Hair colors]]
*[[User:Jaxad0127/Color files/Pants colors|Pants colors]]
*[[User:Jaxad0127/Color files/Shirt colors|Shirt colors]]
*[[User:Jaxad0127/Color files/Skirt colors|Skirt colors]]</text>
      <sha1>m5ysvn41tkxatj7s7pb70so850dmq99</sha1>
    </revision>
    <revision>
      <id>10065</id>
      <parentid>9888</parentid>
      <timestamp>2008-09-04T19:22:12Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added question about making it global and internationalisation</comment>
      <origin>10065</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2184" sha1="njgwiau6bfhp1q11dwzp0w97mq1whz9" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color id to use. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").

===Others===
I cannot think of other uses for these files at the moment.

==Examples==
I've made some examples based on the colors in the client code and item databases:
*[[User:Jaxad0127/Color files/Hair colors|Hair colors]]
*[[User:Jaxad0127/Color files/Pants colors|Pants colors]]
*[[User:Jaxad0127/Color files/Shirt colors|Shirt colors]]
*[[User:Jaxad0127/Color files/Skirt colors|Skirt colors]]

== Discussion ==

''Wouldn't it make sense rather to have one color file, making all color IDs global? I don't see why you would restrict one set of colors to only one item, and having it global would save a lot of typing and maintenance. Also, what about internationalisation?'' --[[User:BjÃ¸rn|BjÃ¸rn]] 21:22, 4 September 2008 (CEST)</text>
      <sha1>njgwiau6bfhp1q11dwzp0w97mq1whz9</sha1>
    </revision>
    <revision>
      <id>10067</id>
      <parentid>10065</parentid>
      <timestamp>2008-09-04T23:25:46Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* Discussion */ respond</comment>
      <origin>10067</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2552" sha1="6fu2cfjo3xdp5ik5xh6a0r9i3ftaf0z" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color id to use. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").

===Others===
I cannot think of other uses for these files at the moment.

==Examples==
I've made some examples based on the colors in the client code and item databases:
*[[User:Jaxad0127/Color files/Hair colors|Hair colors]]
*[[User:Jaxad0127/Color files/Pants colors|Pants colors]]
*[[User:Jaxad0127/Color files/Shirt colors|Shirt colors]]
*[[User:Jaxad0127/Color files/Skirt colors|Skirt colors]]

== Discussion ==

''Wouldn't it make sense rather to have one color file, making all color IDs global? I don't see why you would restrict one set of colors to only one item, and having it global would save a lot of typing and maintenance. Also, what about internationalisation?'' --[[User:BjÃ¸rn|BjÃ¸rn]] 21:22, 4 September 2008 (CEST)

:One file is possible, yes. But with all the duplicate names in clothing, I thought it would be easier this way. For internationalization, I'll use the same system the DBs use, once it's figured out :). &amp;mdash; [[User:Jaxad0127|&lt;span style="color: #160196"&gt;Jaxad&lt;/span&gt;]][[User Talk:Jaxad0127|&lt;span style="color: #5B038F"&gt;0127&lt;/span&gt;]] 01:25, 5 September 2008 (CEST)</text>
      <sha1>6fu2cfjo3xdp5ik5xh6a0r9i3ftaf0z</sha1>
    </revision>
    <revision>
      <id>11679</id>
      <parentid>10067</parentid>
      <timestamp>2009-02-16T14:51:53Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>discussion moved to talk page</comment>
      <origin>11679</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1843" sha1="m5ysvn41tkxatj7s7pb70so850dmq99" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color id to use. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").

===Others===
I cannot think of other uses for these files at the moment.

==Examples==
I've made some examples based on the colors in the client code and item databases:
*[[User:Jaxad0127/Color files/Hair colors|Hair colors]]
*[[User:Jaxad0127/Color files/Pants colors|Pants colors]]
*[[User:Jaxad0127/Color files/Shirt colors|Shirt colors]]
*[[User:Jaxad0127/Color files/Skirt colors|Skirt colors]]</text>
      <sha1>m5ysvn41tkxatj7s7pb70so850dmq99</sha1>
    </revision>
    <revision>
      <id>11681</id>
      <parentid>11679</parentid>
      <timestamp>2009-02-16T14:52:42Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>move examples elsewhere for now</comment>
      <origin>11681</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1442" sha1="fsuk2elop8labagsqndzac8a0ewrceo" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color id to use. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").</text>
      <sha1>fsuk2elop8labagsqndzac8a0ewrceo</sha1>
    </revision>
    <revision>
      <id>11682</id>
      <parentid>11681</parentid>
      <timestamp>2009-02-16T14:53:05Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>[[User:Jaxad0127/Color files]] moved to [[Color XML]]: move outside of my namespace</comment>
      <origin>11682</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1442" sha1="fsuk2elop8labagsqndzac8a0ewrceo" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color id to use. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").</text>
      <sha1>fsuk2elop8labagsqndzac8a0ewrceo</sha1>
    </revision>
    <revision>
      <id>26910</id>
      <parentid>11682</parentid>
      <timestamp>2013-06-24T18:07:13Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Jaxad0127 moved page [[Color XML]] to [[Dev:Color XML]]</comment>
      <origin>26910</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1442" sha1="fsuk2elop8labagsqndzac8a0ewrceo" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color id to use. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").</text>
      <sha1>fsuk2elop8labagsqndzac8a0ewrceo</sha1>
    </revision>
    <revision>
      <id>59468</id>
      <parentid>26910</parentid>
      <timestamp>2024-03-27T03:56:42Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Color XML]] to [[Development:Color XML]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>26910</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1442" sha1="fsuk2elop8labagsqndzac8a0ewrceo" xml:space="preserve">[[Color files]] are files that specify colors that can be used for various purposes. The colors specified in these files are suited for use in [[Image dyeing]] and other purposes.

==Structure==
Color files are in XML format.

===&amp;lt;colors&amp;gt;===
This is the root element of the file.

===&amp;lt;color&amp;gt;===
And individual color. &lt;code&gt;Color&lt;/code&gt;s have &lt;code&gt;id&lt;/code&gt;s, &lt;code&gt;name&lt;/code&gt;s, and &lt;code&gt;value&lt;/code&gt;s. The &lt;code&gt;id&lt;/code&gt; is the value used to identify the color. The &lt;code&gt;name&lt;/code&gt; is a description for the user. The &lt;code&gt;value&lt;/code&gt; is the information used by the code. Example (these are the current hair colors):

&lt;code&gt;
 &amp;lt;colors&amp;gt;
     &amp;lt;color id="0" name="Light Red" value="#8c4b41,da9041,ffffff"/&amp;gt;
     &amp;lt;color id="1" name="Green" value="#06372b,489e25,fdedcc"/&amp;gt;
     &amp;lt;color id="2" name="Red" value="#5f0b33,91191c,f9ad81"/&amp;gt;
     ...
 &amp;lt;/colors&amp;gt;
&lt;/code&gt;

==Usage==

===Item Database===
In the item database, item elements reference the color files. Example:

&lt;code&gt;
 &amp;lt;item id="-1" type="hairsprite" colors="colors_hairstyles.xml"&amp;gt;
     &amp;lt;sprite gender="male"&amp;gt;hairstyle1-male.xml&amp;lt;/sprite&amp;gt;
     &amp;lt;sprite gender="female"&amp;gt;hairstyle1-female.xml&amp;lt;/sprite&amp;gt;
 &amp;lt;/item&amp;gt;
&lt;/code&gt;

When the server sends a dyed item, it also sends the color id to use. The client adds the color name to the item name (turning "Cotton Shirt" to "Red Cotton Shirt" for a color named "Red").</text>
      <sha1>fsuk2elop8labagsqndzac8a0ewrceo</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Concept art</title>
    <ns>0</ns>
    <id>987</id>
    <revision>
      <id>69</id>
      <timestamp>2005-05-23T18:24:32Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <origin>69</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="760" sha1="mo9aocoli9kt1bafl3dhlqv5iybn2qo" xml:space="preserve">Feel free to add yours.
= General art =
http://themanaworld.org/archive/nevilytis/mana05.jpg
http://themanaworld.org/archive/nevilytis/mana011.jpg
http://themanaworld.org/archive/nevilytis/mana049.jpg
* by nevilytis
I saw the post about the login screen and some of the chars inspired me...
http://themanaworld.org/archive/itsnervedamage/Manaworld.png
* by itsnervedamage
= Temple art =
Those two were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city.
Maybe it would fit on another place.
[http://themanaworld.org/archive/pajarico/scenery-temple2-3052006.jpg]&lt;br&gt;

[http://themanaworld.org/archive/pajarico/temple-desert-30042006.jpg]&lt;br&gt;
* by [[Pajarico]]</text>
      <sha1>mo9aocoli9kt1bafl3dhlqv5iybn2qo</sha1>
    </revision>
    <revision>
      <id>70</id>
      <parentid>69</parentid>
      <timestamp>2005-05-23T19:29:03Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Used thumbnails /* Temple art */</comment>
      <origin>70</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="924" sha1="m6ss7keennqisyczjpti9qtho8krpk4" xml:space="preserve">Feel free to add yours.
= General art =
http://themanaworld.org/archive/nevilytis/mana05.jpg
http://themanaworld.org/archive/nevilytis/mana011.jpg
http://themanaworld.org/archive/nevilytis/mana049.jpg
* by nevilytis
I saw the post about the login screen and some of the chars inspired me...
http://themanaworld.org/archive/itsnervedamage/Manaworld.png
* by itsnervedamage
= Temple art =
Those two were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city.
Maybe it would fit on another place.

[http://themanaworld.org/archive/pajarico/scenery-temple2-3052006.jpg http://themanaworld.org/archive/pajarico/thumbs/scenery-temple2-3052006.jpg.thumb.jpg]
[http://themanaworld.org/archive/pajarico/temple-desert-30042006.jpg http://themanaworld.org/archive/pajarico/thumbs/temple-desert-30042006.jpg.thumb.jpg]

* by [[Pajarico]]</text>
      <sha1>m6ss7keennqisyczjpti9qtho8krpk4</sha1>
    </revision>
    <revision>
      <id>396</id>
      <parentid>70</parentid>
      <timestamp>2005-05-23T19:34:34Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>More thumbnails</comment>
      <origin>396</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1223" sha1="pitrsobrqdrh97txvhjwg07ucdiqg4u" xml:space="preserve">Feel free to add yours.
= General art =
[http://themanaworld.org/archive/nevilytis/mana05.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana05.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana011.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana011.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana049.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana049.jpg.thumb.jpg]
* by nevilytis
I saw the post about the login screen and some of the chars inspired me...

[http://themanaworld.org/archive/itsnervedamage/Manaworld.png http://themanaworld.org/archive/itsnervedamage/thumbs/Manaworld.png.thumb.jpg]
* by itsnervedamage
= Temple art =
Those two were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city.
Maybe it would fit on another place.

[http://themanaworld.org/archive/pajarico/scenery-temple2-3052006.jpg http://themanaworld.org/archive/pajarico/thumbs/scenery-temple2-3052006.jpg.thumb.jpg]
[http://themanaworld.org/archive/pajarico/temple-desert-30042006.jpg http://themanaworld.org/archive/pajarico/thumbs/temple-desert-30042006.jpg.thumb.jpg]

* by [[Pajarico]]</text>
      <sha1>pitrsobrqdrh97txvhjwg07ucdiqg4u</sha1>
    </revision>
    <revision>
      <id>774</id>
      <parentid>396</parentid>
      <timestamp>2005-07-07T23:13:24Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Small gallery /* Temple art */</comment>
      <origin>774</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1063" sha1="9gbg5uhq7ivvky1xp1zqdd84nqjvcqr" xml:space="preserve">Feel free to add yours.
= General art =
[http://themanaworld.org/archive/nevilytis/mana05.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana05.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana011.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana011.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana049.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana049.jpg.thumb.jpg]
* by nevilytis
I saw the post about the login screen and some of the chars inspired me...

[http://themanaworld.org/archive/itsnervedamage/Manaworld.png http://themanaworld.org/archive/itsnervedamage/thumbs/Manaworld.png.thumb.jpg]
* by itsnervedamage
= Temple art =
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;</text>
      <sha1>9gbg5uhq7ivvky1xp1zqdd84nqjvcqr</sha1>
    </revision>
    <revision>
      <id>775</id>
      <parentid>774</parentid>
      <timestamp>2005-09-15T10:29:42Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Temple art */</comment>
      <origin>775</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1164" sha1="hlf1kep841iorq0weqxmd89ybxxi0oe" xml:space="preserve">Feel free to add yours.
= General art =
[http://themanaworld.org/archive/nevilytis/mana05.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana05.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana011.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana011.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana049.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana049.jpg.thumb.jpg]
* by nevilytis
I saw the post about the login screen and some of the chars inspired me...

[http://themanaworld.org/archive/itsnervedamage/Manaworld.png http://themanaworld.org/archive/itsnervedamage/thumbs/Manaworld.png.thumb.jpg]
* by itsnervedamage
= Temple art =
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;
= Creature art =

&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;</text>
      <sha1>hlf1kep841iorq0weqxmd89ybxxi0oe</sha1>
    </revision>
    <revision>
      <id>776</id>
      <parentid>775</parentid>
      <timestamp>2005-09-15T10:34:36Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Creature art */</comment>
      <origin>776</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1572" sha1="iowypwxechb9b16vft17vtbe7owl2nu" xml:space="preserve">Feel free to add yours.
= General art =
[http://themanaworld.org/archive/nevilytis/mana05.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana05.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana011.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana011.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana049.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana049.jpg.thumb.jpg]
* by nevilytis
I saw the post about the login screen and some of the chars inspired me...

[http://themanaworld.org/archive/itsnervedamage/Manaworld.png http://themanaworld.org/archive/itsnervedamage/thumbs/Manaworld.png.thumb.jpg]
* by itsnervedamage
= Temple art =
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;
= Creature art =
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;

= Architectural concepts =
&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
&lt;/gallery&gt;</text>
      <sha1>iowypwxechb9b16vft17vtbe7owl2nu</sha1>
    </revision>
    <revision>
      <id>795</id>
      <parentid>776</parentid>
      <timestamp>2005-09-15T10:40:56Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Architectural concepts */</comment>
      <origin>795</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1821" sha1="3ono9t9ypkng1ejrfsm5wsomrog510h" xml:space="preserve">Feel free to add yours.
= General art =
[http://themanaworld.org/archive/nevilytis/mana05.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana05.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana011.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana011.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana049.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana049.jpg.thumb.jpg]
* by nevilytis
I saw the post about the login screen and some of the chars inspired me...

[http://themanaworld.org/archive/itsnervedamage/Manaworld.png http://themanaworld.org/archive/itsnervedamage/thumbs/Manaworld.png.thumb.jpg]
* by itsnervedamage
= Temple art =
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;
= Creature art =
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;

= Architectural concepts =
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
&lt;/gallery&gt;</text>
      <sha1>3ono9t9ypkng1ejrfsm5wsomrog510h</sha1>
    </revision>
    <revision>
      <id>824</id>
      <parentid>795</parentid>
      <timestamp>2005-09-16T00:11:36Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>No need for duplicates ;-) /* Architectural concepts */</comment>
      <origin>824</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1771" sha1="j47z4lgrh1j7ax0xy5zv89k9zv9tq30" xml:space="preserve">Feel free to add yours.
= General art =
[http://themanaworld.org/archive/nevilytis/mana05.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana05.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana011.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana011.jpg.thumb.jpg]
[http://themanaworld.org/archive/nevilytis/mana049.jpg http://themanaworld.org/archive/nevilytis/thumbs/mana049.jpg.thumb.jpg]
* by nevilytis
I saw the post about the login screen and some of the chars inspired me...

[http://themanaworld.org/archive/itsnervedamage/Manaworld.png http://themanaworld.org/archive/itsnervedamage/thumbs/Manaworld.png.thumb.jpg]
* by itsnervedamage
= Temple art =
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;
= Creature art =
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;

= Architectural concepts =
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
&lt;/gallery&gt;</text>
      <sha1>j47z4lgrh1j7ax0xy5zv89k9zv9tq30</sha1>
    </revision>
    <revision>
      <id>825</id>
      <parentid>824</parentid>
      <timestamp>2005-09-17T06:06:57Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* General art */ Using uploaded images</comment>
      <origin>825</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1348" sha1="2e9cceczoegwx3tuf3d0k0xjrlq1cm1" xml:space="preserve">Feel free to add yours.
= General art =
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
&lt;/gallery&gt;

&lt;gallery&gt;
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

= Temple art =
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;
= Creature art =
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;

= Architectural concepts =
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
&lt;/gallery&gt;</text>
      <sha1>2e9cceczoegwx3tuf3d0k0xjrlq1cm1</sha1>
    </revision>
    <revision>
      <id>826</id>
      <parentid>825</parentid>
      <timestamp>2005-09-17T06:25:32Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>Re-sort</comment>
      <origin>826</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1392" sha1="qky9vsube15hbxesr9xwm65s3lfbm9c" xml:space="preserve">Feel free to add yours.
= Architectural art =
== Temple art ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
&lt;/gallery&gt;

&lt;gallery&gt;
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;</text>
      <sha1>qky9vsube15hbxesr9xwm65s3lfbm9c</sha1>
    </revision>
    <revision>
      <id>827</id>
      <parentid>826</parentid>
      <timestamp>2005-09-17T06:33:50Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Architectural art */</comment>
      <origin>827</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1387" sha1="r5heu5t3nq3ddcu5lmqcseidg9720hi" xml:space="preserve">Feel free to add yours.
= Architecture =
== Temple art ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
&lt;/gallery&gt;

&lt;gallery&gt;
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;</text>
      <sha1>r5heu5t3nq3ddcu5lmqcseidg9720hi</sha1>
    </revision>
    <revision>
      <id>837</id>
      <parentid>827</parentid>
      <timestamp>2005-09-17T11:34:49Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Make one gallery /* Character art */</comment>
      <origin>837</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1365" sha1="rj5paivuktwt0ewg4vl26cqobbukkzh" xml:space="preserve">Feel free to add yours.
= Architecture =
== Temple art ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;</text>
      <sha1>rj5paivuktwt0ewg4vl26cqobbukkzh</sha1>
    </revision>
    <revision>
      <id>908</id>
      <parentid>837</parentid>
      <timestamp>2005-09-18T09:52:50Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Architectural concepts */  Added wall preview</comment>
      <origin>908</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1419" sha1="9y9ic5rkt1f777i04semjkwric5o93q" xml:space="preserve">Feel free to add yours.
= Architecture =
== Temple art ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;</text>
      <sha1>9y9ic5rkt1f777i04semjkwric5o93q</sha1>
    </revision>
    <revision>
      <id>976</id>
      <parentid>908</parentid>
      <timestamp>2005-09-23T15:13:54Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Creature art */ Added tree.</comment>
      <origin>976</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1469" sha1="ixn5thwkahc0n1ye1vnc2d2xumardq5" xml:space="preserve">Feel free to add yours.
= Architecture =
== Temple art ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;</text>
      <sha1>ixn5thwkahc0n1ye1vnc2d2xumardq5</sha1>
    </revision>
    <revision>
      <id>977</id>
      <parentid>976</parentid>
      <timestamp>2005-09-30T17:13:07Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Creature art */ Added leap monster</comment>
      <origin>977</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1517" sha1="n4y6qzadvh8qevedr96ebkgf0vko9x6" xml:space="preserve">Feel free to add yours.
= Architecture =
== Temple art ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;</text>
      <sha1>n4y6qzadvh8qevedr96ebkgf0vko9x6</sha1>
    </revision>
    <revision>
      <id>2048</id>
      <parentid>977</parentid>
      <timestamp>2005-09-30T17:13:53Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Architectural concepts */  Added street view</comment>
      <origin>2048</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1575" sha1="3oy2edf2lme09rqtksfemk8d54wvws3" xml:space="preserve">Feel free to add yours.
= Architecture =
== Temple art ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;</text>
      <sha1>3oy2edf2lme09rqtksfemk8d54wvws3</sha1>
    </revision>
    <revision>
      <id>3903</id>
      <parentid>2048</parentid>
      <timestamp>2006-04-12T20:00:36Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Creature art */</comment>
      <origin>3903</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1421" sha1="4boetfv5s505m5ejt92m53dbudgx7bc" xml:space="preserve">Feel free to add yours.
= Architecture =
== Temple art ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].</text>
      <sha1>4boetfv5s505m5ejt92m53dbudgx7bc</sha1>
    </revision>
    <revision>
      <id>4357</id>
      <parentid>3903</parentid>
      <timestamp>2006-07-22T12:38:14Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Architectural concepts */</comment>
      <origin>4357</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1475" sha1="hjo09rg4wemcg8sjgsthg9f9k8vsdii" xml:space="preserve">Feel free to add yours.
= Architecture =
== Temple art ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==
Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

&lt;gallery&gt;
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].</text>
      <sha1>hjo09rg4wemcg8sjgsthg9f9k8vsdii</sha1>
    </revision>
    <revision>
      <id>4370</id>
      <parentid>4357</parentid>
      <timestamp>2006-07-22T13:01:03Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Architecture */ Cleaned, resort, added...</comment>
      <origin>4370</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2112" sha1="l0uely8v68e5uvhzm9aovsvoimmmk3i" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].</text>
      <sha1>l0uely8v68e5uvhzm9aovsvoimmmk3i</sha1>
    </revision>
    <revision>
      <id>4375</id>
      <parentid>4370</parentid>
      <timestamp>2006-07-22T13:10:06Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Beings */</comment>
      <origin>4375</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2262" sha1="sesvctk3uk1hk9f2muyxndm55d97adl" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg
Image:Weapon-crossbow sword hybrid-30042005.jpg
Image:Weapon-chain-30042006.jpg
&lt;/gallery&gt;</text>
      <sha1>sesvctk3uk1hk9f2muyxndm55d97adl</sha1>
    </revision>
    <revision>
      <id>4378</id>
      <parentid>4375</parentid>
      <timestamp>2006-07-22T13:20:39Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Weapons */</comment>
      <origin>4378</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2382" sha1="0jdcez91ad27alhl7x4oef3o2c4xmxo" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;</text>
      <sha1>0jdcez91ad27alhl7x4oef3o2c4xmxo</sha1>
    </revision>
    <revision>
      <id>4383</id>
      <parentid>4378</parentid>
      <timestamp>2006-07-22T13:25:20Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Weapons */</comment>
      <origin>4383</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2422" sha1="ocu02mvo9yhcmzs92tada54p4nqjhuj" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;</text>
      <sha1>ocu02mvo9yhcmzs92tada54p4nqjhuj</sha1>
    </revision>
    <revision>
      <id>4386</id>
      <parentid>4383</parentid>
      <timestamp>2006-07-22T13:35:04Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Outdoor */ Added 3</comment>
      <origin>4386</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2578" sha1="5j42tzriv5rpjqvwumer0rc0601kt1y" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;</text>
      <sha1>5j42tzriv5rpjqvwumer0rc0601kt1y</sha1>
    </revision>
    <revision>
      <id>4396</id>
      <parentid>4386</parentid>
      <timestamp>2006-07-22T13:41:43Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Weapons */ Added more categories, empty ATM</comment>
      <origin>4396</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2632" sha1="74c7r34fo8rl6t466192rgi4709qibs" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objets =
== Items ==
== Clothes ==
== Furniture ==</text>
      <sha1>74c7r34fo8rl6t466192rgi4709qibs</sha1>
    </revision>
    <revision>
      <id>4399</id>
      <parentid>4396</parentid>
      <timestamp>2006-07-22T13:45:47Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Objets */ Oops take 2 (spelling)</comment>
      <origin>4399</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2633" sha1="sw5cqshv9hfqurscrnm77jh81rfuqka" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
== Furniture ==</text>
      <sha1>sw5cqshv9hfqurscrnm77jh81rfuqka</sha1>
    </revision>
    <revision>
      <id>4400</id>
      <parentid>4399</parentid>
      <timestamp>2006-07-22T15:03:11Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Temples */</comment>
      <origin>4400</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2693" sha1="3brf1tdu9c45a1eo65pml68aszra43o" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
== Furniture ==</text>
      <sha1>3brf1tdu9c45a1eo65pml68aszra43o</sha1>
    </revision>
    <revision>
      <id>4851</id>
      <parentid>4400</parentid>
      <timestamp>2006-09-07T09:58:54Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Buildings */</comment>
      <origin>4851</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2714" sha1="sx19mds280zouygl7s36evnvnu7o36z" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
== Furniture ==</text>
      <sha1>sx19mds280zouygl7s36evnvnu7o36z</sha1>
    </revision>
    <revision>
      <id>5514</id>
      <parentid>4851</parentid>
      <timestamp>2006-11-29T06:41:47Z</timestamp>
      <contributor>
        <username>Deesine</username>
        <id>578</id>
      </contributor>
      <comment>/* Character art */</comment>
      <origin>5514</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2762" sha1="hol46qnqj4o4y72s4bsswjq8o7wxvua" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
== Furniture ==</text>
      <sha1>hol46qnqj4o4y72s4bsswjq8o7wxvua</sha1>
    </revision>
    <revision>
      <id>5515</id>
      <parentid>5514</parentid>
      <timestamp>2006-11-29T06:43:01Z</timestamp>
      <contributor>
        <username>Deesine</username>
        <id>578</id>
      </contributor>
      <comment>/* Clothes */</comment>
      <origin>5515</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2828" sha1="sf032ko61pso40rx1a6r5fdrem9393f" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>sf032ko61pso40rx1a6r5fdrem9393f</sha1>
    </revision>
    <revision>
      <id>5517</id>
      <parentid>5515</parentid>
      <timestamp>2006-11-29T12:17:00Z</timestamp>
      <contributor>
        <username>Deesine</username>
        <id>578</id>
      </contributor>
      <comment>/* Clothes */</comment>
      <origin>5517</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2892" sha1="3fzg70poexso5dscyrgg7nfzyd5141z" xml:space="preserve">Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>3fzg70poexso5dscyrgg7nfzyd5141z</sha1>
    </revision>
    <revision>
      <id>6389</id>
      <parentid>5517</parentid>
      <timestamp>2007-03-24T21:10:15Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>-&gt;art</comment>
      <origin>6389</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2909" sha1="8otws40r6vo2std47jizacn7udwptmj" xml:space="preserve">{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>8otws40r6vo2std47jizacn7udwptmj</sha1>
    </revision>
    <revision>
      <id>6890</id>
      <parentid>6389</parentid>
      <timestamp>2007-06-16T15:45:13Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Outdoor */ Added door</comment>
      <origin>6890</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2924" sha1="h2p573q6k7gjjxqdz2puhhv4o242mta" xml:space="preserve">{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Door.png
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>h2p573q6k7gjjxqdz2puhhv4o242mta</sha1>
    </revision>
    <revision>
      <id>6892</id>
      <parentid>6890</parentid>
      <timestamp>2007-06-16T15:46:59Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Outdoor */ oops</comment>
      <origin>6892</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2943" sha1="1ksdk9wxjjha6uetmzeymafzmjk7ws2" xml:space="preserve">{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Door.png|{{Image:Door.png}}
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower2.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>1ksdk9wxjjha6uetmzeymafzmjk7ws2</sha1>
    </revision>
    <revision>
      <id>8309</id>
      <parentid>6892</parentid>
      <timestamp>2007-12-23T14:28:34Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Outdoor */ Corrected link</comment>
      <origin>8309</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2944" sha1="r33a3mx7tqh4t94219ucbbdy2mjrbkl" xml:space="preserve">{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Door.png|{{Image:Door.png}}
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower02.png|{{Image:Arch-tower2.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>r33a3mx7tqh4t94219ucbbdy2mjrbkl</sha1>
    </revision>
    <revision>
      <id>8311</id>
      <parentid>8309</parentid>
      <timestamp>2007-12-23T14:35:44Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Outdoor */ Corrected description</comment>
      <origin>8311</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2945" sha1="k7nlmcym37ghsjawtgfykmf19tx75ft" xml:space="preserve">{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Door.png|{{Image:Door.png}}
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower02.png|{{Image:Arch-tower02.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>k7nlmcym37ghsjawtgfykmf19tx75ft</sha1>
    </revision>
    <revision>
      <id>11237</id>
      <parentid>8311</parentid>
      <timestamp>2009-01-03T09:53:10Z</timestamp>
      <contributor>
        <username>DelnoDarmo</username>
        <id>1478</id>
      </contributor>
      <minor/>
      <comment>reldomlim</comment>
      <origin>11237</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2952" sha1="ojgesqcwyof76t0qaqfxdmj3hxp3xhw" xml:space="preserve">vicvit
{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Door.png|{{Image:Door.png}}
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower02.png|{{Image:Arch-tower02.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>ojgesqcwyof76t0qaqfxdmj3hxp3xhw</sha1>
    </revision>
    <revision>
      <id>11240</id>
      <parentid>11237</parentid>
      <timestamp>2009-01-03T14:31:05Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/DelnoDarmo|DelnoDarmo]] ([[User_talk:DelnoDarmo|Talk]]); changed back to last version by [[User:Pajarico|Pajarico]]</comment>
      <origin>11240</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2945" sha1="k7nlmcym37ghsjawtgfykmf19tx75ft" xml:space="preserve">{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Door.png|{{Image:Door.png}}
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower02.png|{{Image:Arch-tower02.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana05.jpg|{{Image:Mana05.jpg}}
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Mana049.jpg|{{Image:Mana049.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>k7nlmcym37ghsjawtgfykmf19tx75ft</sha1>
    </revision>
    <revision>
      <id>12531</id>
      <parentid>11240</parentid>
      <timestamp>2009-07-05T10:38:20Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Removed references to deleted images /* Character art */</comment>
      <origin>12531</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2867" sha1="de2ffhfs3088bbmxbqhq4lquurx62xs" xml:space="preserve">{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Door.png|{{Image:Door.png}}
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower02.png|{{Image:Arch-tower02.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>de2ffhfs3088bbmxbqhq4lquurx62xs</sha1>
    </revision>
    <revision>
      <id>26918</id>
      <parentid>12531</parentid>
      <timestamp>2013-06-24T18:42:54Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Jaxad0127 moved page [[Concept art]] to [[Dev:Concept art]]</comment>
      <origin>26918</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2867" sha1="de2ffhfs3088bbmxbqhq4lquurx62xs" xml:space="preserve">{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Door.png|{{Image:Door.png}}
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower02.png|{{Image:Arch-tower02.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>de2ffhfs3088bbmxbqhq4lquurx62xs</sha1>
    </revision>
    <revision>
      <id>59470</id>
      <parentid>26918</parentid>
      <timestamp>2024-03-27T03:56:42Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Concept art]] to [[Development:Concept art]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>26918</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2867" sha1="de2ffhfs3088bbmxbqhq4lquurx62xs" xml:space="preserve">{{Category_art}}
Feel free to add yours.
= Architecture =

== Buildings ==
Complete buildings.

&lt;gallery&gt;
Image:Arch-house.jpg
Image:Arch-magic hut.jpg|{{Image:Arch-magic hut.jpg}}
Image:Arch-forest hut.png|{{Image:Arch-forest hut.png}}
Image:Arch-nomad hut.png|{{Image:Arch-nomad hut.png}}
Image:Arch-mud house.png|{{Image:Arch-mud house.png}}
Image:Palace-25072005.jpg|{{Image:Palace-25072005.jpg}}
Image:Cityobservatorium2nn.jpg|{{Image:Cityobservatorium2nn.jpg}}
Image:School.jpg|{{Image:School.jpg}}
&lt;/gallery&gt;

== Temples ==
These two temples were suggestions for the temple on the desertic city, but were rejected for some limitations and due to the fact that there is no temple anymore on that city. Maybe it would fit on another place.

&lt;gallery&gt;
Image:Arch-firetemple01.jpg|{{Image:Arch-firetemple01.jpg}}
Image:Scenery-temple2-3052006.jpg|{{Image:Scenery-temple2-3052006.jpg}}
Image:Temple-desert-30042006.jpg|{{Image:Temple-desert-30042006.jpg}}
Image:City-26072005.jpg|{{Image:City-26072005.jpg}}
&lt;/gallery&gt;

== Architectural concepts ==

Some architecture works. The approach here is to show different version of a same thing, just portraying the object itself and nothing else. We will discuss later where we use each one.

=== Outdoor ===
&lt;gallery&gt;
Image:Door.png|{{Image:Door.png}}
Image:Arch-preview04.png|{{Image:Arch-preview04.png}}
Image:Arch-preview06.png|{{Image:Arch-preview06.png}}
Image:Tulimshar-wall.jpg|{{Image:Tulimshar-wall.jpg}}
Image:Tulimshar street.jpg|{{Image:Tulimshar street.jpg}}
Image:Arch-tower02.png|{{Image:Arch-tower02.png}}
Image:Arch-tower03.png|{{Image:Arch-tower03.png}}
Image:Arch-tower01.jpg|{{Image:Arch-tower01.jpg}}
Image:Arch-window01.jpg|{{Image:Arch-window01.jpg}}
Image:Arch-window02.jpg|{{Image:Arch-window02.jpg}}
Image:Arch-window03.jpg|{{Image:Arch-window03.jpg}}
Image:Arch-window04.jpg|{{Image:Arch-window04.jpg}}
Image:Arch-window05.jpg|{{Image:Arch-window05.jpg}}
Image:Serpent.inn-detail.jpg|{{Image:Serpent.inn-detail.jpg}}
Image:Unknown-logo.jpg|{{Image:Unknown-logo.jpg}}
&lt;/gallery&gt;

=== Indoor ===
&lt;gallery&gt;
Image:Arch-library.png|{{Image:Arch-library.png}}
&lt;/gallery&gt;

= Beings =
== Character art ==
&lt;gallery&gt;
Image:Mana011.jpg|{{Image:Mana011.jpg}}
Image:Characters.png|{{Image:Characters.png}}
Image:Hairstyles1.jpg|{{Image:Hairstyles1.jpg}}
&lt;/gallery&gt;

== Creature art ==
See [[Creature proposal]].

= Weapons =
&lt;gallery&gt;
Image:Weapon-fire wire-30042005.jpg|{{Image:Weapon-fire wire-30042005.jpg}}
Image:Weapon-crossbow sword hybrid-30042005.jpg|{{Image:Weapon-crossbow sword hybrid-30042005.jpg}}
Image:Weapon-chain-30042006.jpg|{{Image:Weapon-chain-30042006.jpg}}
Image:Axe.png|{{Image:Axe.png}}
&lt;/gallery&gt;

= Objects =
== Items ==
== Clothes ==
&lt;gallery&gt;
Image:Costumes1.jpg|{{Image:Costumes1.jpg}}
Image:Dee_WinterCostumes2.jpg|{{Image:Dee_WinterCostumes2.jpg}}
&lt;/gallery&gt;

== Furniture ==</text>
      <sha1>de2ffhfs3088bbmxbqhq4lquurx62xs</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Contributors</title>
    <ns>0</ns>
    <id>3706</id>
    <revision>
      <id>11717</id>
      <timestamp>2009-02-21T01:59:23Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <comment>Copied everyone from [[Developers]], missing people need to be added</comment>
      <origin>11717</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4158" sha1="bhg4bofx2t3o1f95h4pciw8nui1jhu0" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions !! Location
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art || USA, born in El Salvador
|-
| Alexander Baldeck (kth5/Shura) || Programming ||
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming || Germany
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming || Germany
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation || Brazil
|-
| [[User:Bear|Bear]] || Scripting || USA
|-
| [[User:Bertram|Bertram]] || Programming || France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project leading, programming || The Netherlands
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac) || USA
|-
| Chetic || Mapping ||
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming || USA
|-
| [[User:Clef|Clef]] || Pixel art ||
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing || USA
|-
| [[User:Demon|Demon]] || Pixel art ||
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming || Denmark
|-
| [[User:deviexx|deviexx]] || Content management ||
|-
| [[User:Doener|Doener]] || Programming || Germany
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project leading, programming || Italy
|-
| [[User:Fate|Fate]] || Content management, eAthena developing ||
|-
| [[User:Golgo|Golgo]] || Pixel art ||
|-
| Gnulia || Concept art ||
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming || France
|-
| Igor Morgado (imorgado) || Testing ||
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, minor programming || USA
|-
| [[User:Javila|Javila]] || Programming || Brazil
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of art, story and music || Finland
|-
| [[User:JoshLangley|JoshLangley]] || Programming (client) || Australia
|-
| [[User:kindjal|kindjal]] || Programming || France, currently Italy
|-
| [[User:Kinetic|Kinetic]] || Pixel art || USA
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art || Poland
|-
| [[User:Kyokai|Kyokai]] || Game design ||
|-
| [[User:Len|L Pabin (len)]] || Pixel art, concept art, mapping; Head of Pixellation || USA
|-
| [[User:maci|maci]] || User support || Germany
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art || USA
|-
| [[User:Magick|Magick]] || Music ||
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming || Poland
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy || Germany
|-
| [[User:Mkael|Mkael]] || Concept art || Finland
|-
| [[User:Modanung|Modanung]] || Pixel art, concept art || The Netherlands
|-
| [[User:Mra|Mra]] || Programming || Germany
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art || Brazil
|-
| Neorice || Pixel art ||
|-
| [[User:Nym|nym]] || Programming || Australia
|-
| [[User:Pajarico|Pajarico]] || Art, writing || Spain
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian) || Germany
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design || USA
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming || Germany
|-
| [[User:Platyna|Platyna]] || Packaging (Slackware) || Poland
|-
| Quiche_On_A_leash (QOAL) || Content management ||
|-
| Rodney Dawes (dobey) || Packaging ||
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming || The Netherlands
|-
| Romulo Fernandes (razor85) || Art ||
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac) ||
|-
| [[User:Sora|Sora]] || Pixel art || Poland
|-
| [[User:Sull|Sull]] || Pixel art, hosting || Canada
|-
| [[User:Talaroc|Talaroc]] || Pixel art ||
|-
| Ti Sing Hao || Music ||
|-
| [[User:Trapdoor|trapdoor]] || Programming || England
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface) || Germany
|-
| Ultramichy || Hosting ||
|-
| [[User:VictorSan|VictorSan]] || Programming || Spain
|-
| Vlady || Art ||
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art || Slovakia
|-
| zenogais (bitshift2002) || Programming ||
|-
| [[User:Zipon|Zipon]] || Mapping || Denmark
|}</text>
      <sha1>bhg4bofx2t3o1f95h4pciw8nui1jhu0</sha1>
    </revision>
    <revision>
      <id>11720</id>
      <parentid>11717</parentid>
      <timestamp>2009-02-21T02:13:18Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <comment>Remove location</comment>
      <origin>11720</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3589" sha1="t6ryqnfoklzs1sy77njbfff4fooa1jx" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Bertram|Bertram]] || Programming
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project leading, programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| [[User:Doener|Doener]] || Programming
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project leading, programming
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, minor programming
|-
| [[User:Javila|Javila]] || Programming
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of art, story and music
|-
| [[User:JoshLangley|JoshLangley]] || Programming (client)
|-
| [[User:kindjal|kindjal]] || Programming
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| [[User:Kyokai|Kyokai]] || Game design
|-
| [[User:Len|L Pabin (len)]] || Pixel art, concept art, mapping; Head of Pixellation
|-
| [[User:maci|maci]] || User support
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Modanung|Modanung]] || Pixel art, concept art
|-
| [[User:Mra|Mra]] || Programming
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:Pajarico|Pajarico]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:Platyna|Platyna]] || Packaging (Slackware)
|-
| Quiche_On_A_leash (QOAL) || Content management
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Talaroc|Talaroc]] || Pixel art
|-
| Ti Sing Hao || Music
|-
| [[User:Trapdoor|trapdoor]] || Programming
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| Vlady || Art
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}</text>
      <sha1>t6ryqnfoklzs1sy77njbfff4fooa1jx</sha1>
    </revision>
    <revision>
      <id>11725</id>
      <parentid>11720</parentid>
      <timestamp>2009-02-21T22:36:48Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>added my self to contributors.</comment>
      <origin>11725</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3653" sha1="sumy8uu0ll8idmo7dm34h5qysitr35c" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Bertram|Bertram]] || Programming
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project leading, programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| [[User:Doener|Doener]] || Programming
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project leading, programming
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, minor programming
|-
| [[User:Javila|Javila]] || Programming
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of art, story and music
|-
| [[User:JoshLangley|JoshLangley]] || Programming (client)
|-
| [[User:kindjal|kindjal]] || Programming
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| [[User:Kyokai|Kyokai]] || Game design
|-
| [[User:Len|L Pabin (len)]] || Pixel art, concept art, mapping; Head of Pixellation
|-
| [[User:maci|maci]] || User support
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Modanung|Modanung]] || Pixel art, concept art
|-
| [[User:Mra|Mra]] || Programming
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:Platyna|Platyna]] || Packaging (Slackware)
|-
| Quiche_On_A_leash (QOAL) || Content management
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Talaroc|Talaroc]] || Pixel art
|-
| Ti Sing Hao || Music
|-
| [[User:Trapdoor|trapdoor]] || Programming
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| Vlady || Art
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}</text>
      <sha1>sumy8uu0ll8idmo7dm34h5qysitr35c</sha1>
    </revision>
    <revision>
      <id>11854</id>
      <parentid>11725</parentid>
      <timestamp>2009-03-19T13:22:40Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Link to QOAL's user here too</comment>
      <origin>11854</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3674" sha1="1xssb7oukno6388ou2yn54ckp0lueyk" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Bertram|Bertram]] || Programming
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project leading, programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| [[User:Doener|Doener]] || Programming
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project leading, programming
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, minor programming
|-
| [[User:Javila|Javila]] || Programming
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of art, story and music
|-
| [[User:JoshLangley|JoshLangley]] || Programming (client)
|-
| [[User:kindjal|kindjal]] || Programming
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| [[User:Kyokai|Kyokai]] || Game design
|-
| [[User:Len|L Pabin (len)]] || Pixel art, concept art, mapping; Head of Pixellation
|-
| [[User:maci|maci]] || User support
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Modanung|Modanung]] || Pixel art, concept art
|-
| [[User:Mra|Mra]] || Programming
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:Platyna|Platyna]] || Packaging (Slackware)
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Talaroc|Talaroc]] || Pixel art
|-
| Ti Sing Hao || Music
|-
| [[User:Trapdoor|trapdoor]] || Programming
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| Vlady || Art
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}</text>
      <sha1>1xssb7oukno6388ou2yn54ckp0lueyk</sha1>
    </revision>
    <revision>
      <id>11938</id>
      <parentid>11854</parentid>
      <timestamp>2009-04-23T08:45:05Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <comment>Updating from the AUTHORS files, please check!</comment>
      <origin>11938</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5069" sha1="szmcb5daody4v14284byffncqq27s7d" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git]] repositoriesâ€™ &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, minor programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>szmcb5daody4v14284byffncqq27s7d</sha1>
    </revision>
    <revision>
      <id>11940</id>
      <parentid>11938</parentid>
      <timestamp>2009-04-23T12:18:48Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <origin>11940</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5063" sha1="nt9h0pcmy08urny13mfgitrmugyv39a" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git]] repositoriesâ€™ &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>nt9h0pcmy08urny13mfgitrmugyv39a</sha1>
    </revision>
    <revision>
      <id>12001</id>
      <parentid>11940</parentid>
      <timestamp>2009-05-04T02:55:37Z</timestamp>
      <contributor>
        <username>Fother</username>
        <id>1315</id>
      </contributor>
      <comment>Add myself... narcism rocks.</comment>
      <origin>12001</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5130" sha1="5q1dxb144thvdbzw1or9cml55porfy9" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git]] repositoriesâ€™ &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>5q1dxb144thvdbzw1or9cml55porfy9</sha1>
    </revision>
    <revision>
      <id>12374</id>
      <parentid>12001</parentid>
      <timestamp>2009-06-11T08:47:49Z</timestamp>
      <contributor>
        <username>Freeyorp</username>
        <id>1501</id>
      </contributor>
      <comment>Added myself.</comment>
      <origin>12374</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5197" sha1="p7oskae2kn8xa0lw5m0edrvz30uxj8u" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git]] repositoriesâ€™ &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>p7oskae2kn8xa0lw5m0edrvz30uxj8u</sha1>
    </revision>
    <revision>
      <id>12391</id>
      <parentid>12374</parentid>
      <timestamp>2009-06-12T19:51:45Z</timestamp>
      <contributor>
        <username>Superkoop</username>
        <id>1088</id>
      </contributor>
      <comment>Added myself</comment>
      <origin>12391</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5257" sha1="tlvvc9gzdwntl8i5eryiuq8e0toqcjh" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git]] repositoriesâ€™ &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>tlvvc9gzdwntl8i5eryiuq8e0toqcjh</sha1>
    </revision>
    <revision>
      <id>14040</id>
      <parentid>12391</parentid>
      <timestamp>2009-12-10T12:48:39Z</timestamp>
      <contributor>
        <username>Luca1189</username>
        <id>1666</id>
      </contributor>
      <minor/>
      <origin>14040</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5268" sha1="43reb1ubse5hddx0fdvp1pn38r599fy" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository]] repositoriesâ€™ &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>43reb1ubse5hddx0fdvp1pn38r599fy</sha1>
    </revision>
    <revision>
      <id>14041</id>
      <parentid>14040</parentid>
      <timestamp>2009-12-10T12:49:20Z</timestamp>
      <contributor>
        <username>Luca1189</username>
        <id>1666</id>
      </contributor>
      <minor/>
      <origin>14041</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5272" sha1="dit4k5ivzn163mgx7ezkx11ewr7gcs5" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>dit4k5ivzn163mgx7ezkx11ewr7gcs5</sha1>
    </revision>
    <revision>
      <id>14479</id>
      <parentid>14041</parentid>
      <timestamp>2009-12-31T01:49:58Z</timestamp>
      <contributor>
        <username>Swimmy</username>
        <id>1495</id>
      </contributor>
      <origin>14479</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5433" sha1="7hutj5l6d8d88s1h5kdm5u8ljcr7x7o" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Swimmy|Daiki Matsubara (Swimmy)]] || Translation (Japanese)
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>7hutj5l6d8d88s1h5kdm5u8ljcr7x7o</sha1>
    </revision>
    <revision>
      <id>14733</id>
      <parentid>14479</parentid>
      <timestamp>2010-01-22T13:22:44Z</timestamp>
      <contributor>
        <username>Swimmy</username>
        <id>1495</id>
      </contributor>
      <comment>added Tiana as a Game Master</comment>
      <origin>14733</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5474" sha1="im0iqbwhffsbxj3k970p89z0fp1zh5q" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Swimmy|Daiki Matsubara (Swimmy)]] || Translation (Japanese)
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>im0iqbwhffsbxj3k970p89z0fp1zh5q</sha1>
    </revision>
    <revision>
      <id>14816</id>
      <parentid>14733</parentid>
      <timestamp>2010-02-06T08:04:44Z</timestamp>
      <contributor>
        <username>Swimmy</username>
        <id>1495</id>
      </contributor>
      <comment>added Narus as Game Master</comment>
      <origin>14816</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5497" sha1="05xaf9s5jx7p0yqd529k3nzybz6yjdd" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>05xaf9s5jx7p0yqd529k3nzybz6yjdd</sha1>
    </revision>
    <revision>
      <id>15099</id>
      <parentid>14816</parentid>
      <timestamp>2010-06-02T13:04:52Z</timestamp>
      <contributor>
        <username>IvanMorve</username>
        <id>1788</id>
      </contributor>
      <comment>heh</comment>
      <origin>15099</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5553" sha1="m6zy9rozfbfsxexlu36d0gvddwjygr1" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}</text>
      <sha1>m6zy9rozfbfsxexlu36d0gvddwjygr1</sha1>
    </revision>
    <revision>
      <id>16142</id>
      <parentid>15099</parentid>
      <timestamp>2010-11-22T04:10:27Z</timestamp>
      <contributor>
        <username>Hoogli</username>
        <id>1124</id>
      </contributor>
      <origin>16142</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5576" sha1="dov4wxmsrtz5a5fst8nrihmlyt3gqjl" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|BjÃ¶rn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>dov4wxmsrtz5a5fst8nrihmlyt3gqjl</sha1>
    </revision>
    <revision>
      <id>23310</id>
      <parentid>16142</parentid>
      <timestamp>2012-01-31T22:12:57Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Fixed some messed up characters</comment>
      <origin>23310</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5569" sha1="sj3fc28gk5noepixbyxw1c5nowkwaq2" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Bjorn|Bjørn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>sj3fc28gk5noepixbyxw1c5nowkwaq2</sha1>
    </revision>
    <revision>
      <id>23419</id>
      <parentid>23310</parentid>
      <timestamp>2012-02-07T18:16:58Z</timestamp>
      <contributor>
        <username>Argul</username>
        <id>1858</id>
      </contributor>
      <comment>adding me</comment>
      <origin>23419</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5653" sha1="389ctjobecg2705naohnt22axtb05pj" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Bjorn|Bjørn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>389ctjobecg2705naohnt22axtb05pj</sha1>
    </revision>
    <revision>
      <id>23421</id>
      <parentid>23419</parentid>
      <timestamp>2012-02-07T18:24:38Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>added self</comment>
      <origin>23421</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5771" sha1="b58e2vwel609861sdda23eun80pcter" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki System Operator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Bjorn|Bjørn Lindeijer]] || Project Leader; programming, translation (Dutch)
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>b58e2vwel609861sdda23eun80pcter</sha1>
    </revision>
    <revision>
      <id>23424</id>
      <parentid>23421</parentid>
      <timestamp>2012-02-07T19:50:45Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Changed to full name</comment>
      <origin>23424</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5783" sha1="cyv7rmvuagtmmc6tu4q6e7ww0vwvlgj" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositoriesâ€™]] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://gitorious.org/projects/tmw/repos/mainline/blobs/master/AUTHORS client] and [http://gitorious.org/projects/tmwserv/repos/mainline/blobs/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki System Operator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>cyv7rmvuagtmmc6tu4q6e7ww0vwvlgj</sha1>
    </revision>
    <revision>
      <id>23426</id>
      <parentid>23424</parentid>
      <timestamp>2012-02-07T20:11:06Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Some link updates</comment>
      <origin>23426</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5732" sha1="42rheyo6mzld2y6tvtcyw4idqixsjkq" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki System Operator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>42rheyo6mzld2y6tvtcyw4idqixsjkq</sha1>
    </revision>
    <revision>
      <id>23560</id>
      <parentid>23426</parentid>
      <timestamp>2012-02-25T23:16:17Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>Added skipy.</comment>
      <origin>23560</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5755" sha1="65xkj94wddu74nsq8ufql42yv4sktet" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>65xkj94wddu74nsq8ufql42yv4sktet</sha1>
    </revision>
    <revision>
      <id>24403</id>
      <parentid>23560</parentid>
      <timestamp>2012-09-05T19:58:15Z</timestamp>
      <contributor>
        <username>Rodrigo</username>
        <id>2213</id>
      </contributor>
      <origin>24403</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5803" sha1="rg30fuzgjrpj3lrdp0s6125goonbxym" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:Rodrigo|Pluto]] || Translation (Shqip)
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>rg30fuzgjrpj3lrdp0s6125goonbxym</sha1>
    </revision>
    <revision>
      <id>24404</id>
      <parentid>24403</parentid>
      <timestamp>2012-09-05T19:58:50Z</timestamp>
      <contributor>
        <username>Rodrigo</username>
        <id>2213</id>
      </contributor>
      <origin>24404</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5806" sha1="g4dpb6qld89utp1ppil9hxli6p6l8g4" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:Rodrigo|Pluto]] || Translation (Shqip)
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>g4dpb6qld89utp1ppil9hxli6p6l8g4</sha1>
    </revision>
    <revision>
      <id>24432</id>
      <parentid>24404</parentid>
      <timestamp>2012-09-08T12:00:28Z</timestamp>
      <contributor>
        <username>Rodrigo</username>
        <id>2213</id>
      </contributor>
      <origin>24432</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5817" sha1="ham6vylj5u9wk5v6z9jmebwngtnby2l" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Pluto]] || Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>ham6vylj5u9wk5v6z9jmebwngtnby2l</sha1>
    </revision>
    <revision>
      <id>24472</id>
      <parentid>24432</parentid>
      <timestamp>2012-09-13T11:32:15Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>24472</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5871" sha1="kznau4uco4jcxl9qinwg26imtmoqqdz" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Pluto]] || Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux-th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>kznau4uco4jcxl9qinwg26imtmoqqdz</sha1>
    </revision>
    <revision>
      <id>24473</id>
      <parentid>24472</parentid>
      <timestamp>2012-09-13T11:32:46Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>24473</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5871" sha1="86lg4qf15vb9138fu7gulbrojmgxb4u" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Pluto]] || Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>86lg4qf15vb9138fu7gulbrojmgxb4u</sha1>
    </revision>
    <revision>
      <id>24474</id>
      <parentid>24473</parentid>
      <timestamp>2012-09-13T11:35:14Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>24474</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5937" sha1="f394fbh6iiellxpr8b9xzy5lxojt6ue" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Pluto]] || Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:Peablog|Peablog]] || Testing, error and bug Reporting
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>f394fbh6iiellxpr8b9xzy5lxojt6ue</sha1>
    </revision>
    <revision>
      <id>24476</id>
      <parentid>24474</parentid>
      <timestamp>2012-09-13T11:40:17Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>24476</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5952" sha1="13jylnd65pj55o41uieo6itrzsr9yz7" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:Peablog|Peablog]] || Testing, error and bug Reporting
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Argul| Stefan Beller (PjotrOrial) ]] || Scripting, Mapping, Programmer 
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>13jylnd65pj55o41uieo6itrzsr9yz7</sha1>
    </revision>
    <revision>
      <id>25755</id>
      <parentid>24476</parentid>
      <timestamp>2013-03-11T09:44:12Z</timestamp>
      <contributor>
        <username>Argul</username>
        <id>1858</id>
      </contributor>
      <comment>remove me</comment>
      <origin>25755</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5868" sha1="26roqwlt4iygzffkqdsys338mkukgyd" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:Peablog|Peablog]] || Testing, error and bug Reporting
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>26roqwlt4iygzffkqdsys338mkukgyd</sha1>
    </revision>
    <revision>
      <id>25760</id>
      <parentid>25755</parentid>
      <timestamp>2013-03-14T15:58:26Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>25760</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5983" sha1="ojtw238faosaivxiecyi6jmwwscpusx" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| doorsman || Game master
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || Game master
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || Game master
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| [[User:Narus|Narus]] || Game Master
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| [[User:QwertyDragon]] aka [[User:Peablog|Peablog]] || Testing, error and bug Reporting, Dialog writing and correctrion.
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || Game Master
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || Game master
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>ojtw238faosaivxiecyi6jmwwscpusx</sha1>
    </revision>
    <revision>
      <id>25763</id>
      <parentid>25760</parentid>
      <timestamp>2013-03-14T16:16:24Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>25763</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6398" sha1="icjrq58j3k3hapo4hsuknvf020z6pc3" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:QwertyDragon]] aka [[User:Peablog|Peablog]] || Testing, error and bug Reporting, Dialog writing and correctrion.
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>icjrq58j3k3hapo4hsuknvf020z6pc3</sha1>
    </revision>
    <revision>
      <id>25769</id>
      <parentid>25763</parentid>
      <timestamp>2013-03-14T17:19:44Z</timestamp>
      <contributor>
        <username>Peablog</username>
        <id>2134</id>
      </contributor>
      <minor/>
      <origin>25769</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6385" sha1="e96payt5472jvxg2uc4eql97uspg0i3" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Ali-G|Ali-G]] || Pixel Art, Scripting, Mapping Lead, XML Lead, Translation (French), Wiki Administrator
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>e96payt5472jvxg2uc4eql97uspg0i3</sha1>
    </revision>
    <revision>
      <id>26283</id>
      <parentid>25769</parentid>
      <timestamp>2013-04-23T14:34:05Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <origin>26283</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6380" sha1="meszkvxjv5nitq2deynjxy3itdoi3od" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alige|Alige]] || Pixel Art, Scripting, Mapping, XML, Wiki Translation (French), Wiki Administrator
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>meszkvxjv5nitq2deynjxy3itdoi3od</sha1>
    </revision>
    <revision>
      <id>26447</id>
      <parentid>26283</parentid>
      <timestamp>2013-05-28T06:17:08Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>Adding Silent Dawn as Game Master</comment>
      <origin>26447</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6428" sha1="fxi2jruacpz864gnk6tc7t52lx45kji" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [http://gitorious.org/projects/tmwart/repos/mainline/blobs/master/AUTHORS art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alige|Alige]] || Pixel Art, Scripting, Mapping, XML, Wiki Translation (French), Wiki Administrator
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>fxi2jruacpz864gnk6tc7t52lx45kji</sha1>
    </revision>
    <revision>
      <id>26643</id>
      <parentid>26447</parentid>
      <timestamp>2013-06-13T09:27:58Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>fixed link</comment>
      <origin>26643</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6428" sha1="424vdz1awc52r46hbe5hxqkbyg13bgy" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alige|Alige]] || Pixel Art, Scripting, Mapping, XML, Wiki Translation (French), Wiki Administrator
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>424vdz1awc52r46hbe5hxqkbyg13bgy</sha1>
    </revision>
    <revision>
      <id>26665</id>
      <parentid>26643</parentid>
      <timestamp>2013-06-15T16:13:08Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>26665</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6534" sha1="7wy3u20pe5zpwyn2nc6atckpa9dzwns" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| [[User:4144|4144]] || Client programming.
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alige|Alige]] || Pixel Art, Scripting, Mapping, XML, Wiki Translation (French), Wiki Administrator
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chef Chelios || Pixel art.
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| Ginaria || Pixel art.
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>7wy3u20pe5zpwyn2nc6atckpa9dzwns</sha1>
    </revision>
    <revision>
      <id>27985</id>
      <parentid>26665</parentid>
      <timestamp>2013-08-04T19:27:22Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>added Melkior as GM</comment>
      <origin>27985</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6597" sha1="sjqh62fzrgv5yo6j94pr64ylty8kg5b" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| [[User:4144|4144]] || Client programming.
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alige|Alige]] || Pixel Art, Scripting, Mapping, XML, Wiki Translation (French), Wiki Administrator
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chef Chelios || Pixel art.
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| Ginaria || Pixel art.
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Melkior|Melkior]] || [[Game Masters|Game master]]
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] || [[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>sjqh62fzrgv5yo6j94pr64ylty8kg5b</sha1>
    </revision>
    <revision>
      <id>28011</id>
      <parentid>27985</parentid>
      <timestamp>2013-08-06T06:25:01Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>Big Crunch -&gt; ex GM...</comment>
      <origin>28011</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6596" sha1="qomp6pqk4hhel3pqyhko4tv35m5g6fa" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| [[User:4144|4144]] || Client programming
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alige|Alige]] || Pixel Art, Scripting, Mapping, XML, Wiki Translation (French), Wiki Administrator
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chef Chelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| Ginaria || Pixel art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Melkior|Melkior]] || [[Game Masters|Game master]]
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] || [[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correction
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>qomp6pqk4hhel3pqyhko4tv35m5g6fa</sha1>
    </revision>
    <revision>
      <id>28013</id>
      <parentid>28011</parentid>
      <timestamp>2013-08-06T10:24:16Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>CapitanAwesome -&gt; *ex*-GM</comment>
      <origin>28013</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6601" sha1="oohrolyr2mm6mq15jjxr6ni3p76owdh" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]]. The definitive source of contributors should be found in the respective [[Git repository|git repositories']] &lt;code&gt;AUTHORS&lt;/code&gt; files: [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt art], [http://github.com/mana/mana/tree/master/AUTHORS client] and [http://github.com/mana/manaserv/tree/master/AUTHORS server].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| [[User:4144|4144]] || Client programming
|-
| Aaron Marks || Programming (server)
|-
| [[User:Axltrozz|Alex Argumedo (Axltrozz)]] || Pixel art
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alige|Alige]] || Pixel Art, Scripting, Mapping, XML, Wiki Translation (French), Wiki Administrator
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] || Programming
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Av3nger|Av3nger]] || Pixel art, mapping, translation
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| [[User:Doener|Björn Steinbrink (Doener)]] || Programming
|-
| CapitanAwesome || (ex-)[[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chef Chelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Kage|Chuck Miller (Kage)]] || Programming
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Trapdoor|David Athay (trapdoor)]] || Programming
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] || Project Leader; programming, translation (Italian)
|-
| Eric Scrivner || Programming (client)
|-
| [[User:Fate|Fate]] || Content management, eAthena developing
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Freeyorp|Freeyorp]] || Programming (client), Pixel art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| Ginaria || Pixel art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] || Content management, mapping, programming
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Rotonen|Joni Orponen (Rotonen)]] || Head of Art, Story and Music
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| [[User:Irukard|Krzysztof Daszuta (Irukard)]] || Pixel art
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| [[User:hackgrid|Matt]] || Blabbering idiocy
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Melkior|Melkior]] || [[Game Masters|Game master]]
|-
| [[User:Meway|Meway]] || Pixel art
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] || [[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:the-me|Patrick MatthÃ¤i]] || Packaging (Debian)
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:Crush|Philipp Sehmisch (Crush)]] || Pixel art, mapping, programming
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correction
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| [[User:QOAL|Scott Ellis (Quiche_on_a_leash, QOAL)]] || Content management
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| Skipy || Pixel art
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| [[User:Bjorn|Thorbjørn Lindeijer (bjorn)]] || Project Leader; programming, translation (Dutch)
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:Tuxtgz|Tuxtgz]] || Programming (web interface)
|-
| [[User:Tux|Tux9th]] || Content development, maps
|-
| Ultramichy || Hosting
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| [[User:Yosuhara|Yosuhara]] || Pixel art
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|-
| [[User:Platyna|Zuzanna K. Filutowska (Platyna)]] || Packaging (Slackware)
|}
[[Category:reference]]</text>
      <sha1>oohrolyr2mm6mq15jjxr6ni3p76owdh</sha1>
    </revision>
    <revision>
      <id>28304</id>
      <parentid>28013</parentid>
      <timestamp>2013-09-25T13:13:29Z</timestamp>
      <contributor>
        <username>Tux</username>
        <id>2198</id>
      </contributor>
      <origin>28304</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4592" sha1="7m5xmx2dxfcpyrw6038749xvugfylm0" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:melkior|melkior]] || [[Game Masters|Game master]]
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>7m5xmx2dxfcpyrw6038749xvugfylm0</sha1>
    </revision>
    <revision>
      <id>28967</id>
      <parentid>28304</parentid>
      <timestamp>2013-12-03T17:28:42Z</timestamp>
      <contributor>
        <username>Melkior</username>
        <id>1643</id>
      </contributor>
      <origin>28967</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4597" sha1="d25eqpt31aultiwmdt8sal01h220ky2" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:melkior|melkior]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>d25eqpt31aultiwmdt8sal01h220ky2</sha1>
    </revision>
    <revision>
      <id>28991</id>
      <parentid>28967</parentid>
      <timestamp>2013-12-05T16:21:44Z</timestamp>
      <contributor>
        <username>Melkior</username>
        <id>1643</id>
      </contributor>
      <origin>28991</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4530" sha1="hwvkjiesy20ifsr9plythh6mb7ah1s4" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>hwvkjiesy20ifsr9plythh6mb7ah1s4</sha1>
    </revision>
    <revision>
      <id>29288</id>
      <parentid>28991</parentid>
      <timestamp>2014-02-13T20:20:54Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>adding Lizandra</comment>
      <origin>29288</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4572" sha1="kznldcshmckzru4uf8nf5twj17iylba" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>kznldcshmckzru4uf8nf5twj17iylba</sha1>
    </revision>
    <revision>
      <id>29289</id>
      <parentid>29288</parentid>
      <timestamp>2014-02-13T20:28:48Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>addings meway and salmondine as well</comment>
      <origin>29289</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4653" sha1="kd0xxyyjn7jh0nmm262o5jl2c7jrh6d" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>kd0xxyyjn7jh0nmm262o5jl2c7jrh6d</sha1>
    </revision>
    <revision>
      <id>29290</id>
      <parentid>29289</parentid>
      <timestamp>2014-02-13T20:35:44Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>adding ChefChelios and correcting Lizandra's name</comment>
      <origin>29290</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4691" sha1="dtl6ch2sza9pk3pwheefvm52xru6use" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>dtl6ch2sza9pk3pwheefvm52xru6use</sha1>
    </revision>
    <revision>
      <id>29291</id>
      <parentid>29290</parentid>
      <timestamp>2014-02-13T21:04:12Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>added Qoal as well</comment>
      <origin>29291</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4749" sha1="jtdl9461fnpf2pw3d0enbfqv7vbrs1s" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>jtdl9461fnpf2pw3d0enbfqv7vbrs1s</sha1>
    </revision>
    <revision>
      <id>29292</id>
      <parentid>29291</parentid>
      <timestamp>2014-02-14T22:05:38Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* The whole world should know Im awesome I'm just seeing if anyone else reads these */</comment>
      <origin>29292</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4829" sha1="538039dhtr33vckwyqt1ekwbenkvd91" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis, Best-Looking.
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>538039dhtr33vckwyqt1ekwbenkvd91</sha1>
    </revision>
    <revision>
      <id>29294</id>
      <parentid>29292</parentid>
      <timestamp>2014-02-16T13:53:01Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <comment>-.-</comment>
      <origin>29294</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4814" sha1="ed15lzar49g0hd0cy77lqlu1ed9u7wb" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>ed15lzar49g0hd0cy77lqlu1ed9u7wb</sha1>
    </revision>
    <revision>
      <id>29433</id>
      <parentid>29294</parentid>
      <timestamp>2014-02-21T09:28:47Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>added veryape, Chay and myself</comment>
      <origin>29433</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5012" sha1="n9im7412fo69akccz9z0rax9gbemm25" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, Dialog writing and correctrion.
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>n9im7412fo69akccz9z0rax9gbemm25</sha1>
    </revision>
    <revision>
      <id>29438</id>
      <parentid>29433</parentid>
      <timestamp>2014-02-21T13:53:58Z</timestamp>
      <contributor>
        <username>SudoPlatypus</username>
        <id>2255</id>
      </contributor>
      <minor/>
      <origin>29438</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4995" sha1="r1pb7tij6xq1721zw50mk5q4q6kw9zm" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>r1pb7tij6xq1721zw50mk5q4q6kw9zm</sha1>
    </revision>
    <revision>
      <id>29485</id>
      <parentid>29438</parentid>
      <timestamp>2014-02-27T06:56:07Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>adding V0id</comment>
      <origin>29485</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5085" sha1="dr6qvepgcs5a60ez9vtr6nanbj1e7i5" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>dr6qvepgcs5a60ez9vtr6nanbj1e7i5</sha1>
    </revision>
    <revision>
      <id>29668</id>
      <parentid>29485</parentid>
      <timestamp>2014-03-02T18:31:30Z</timestamp>
      <contributor>
        <username>Madcamel</username>
        <id>1494</id>
      </contributor>
      <origin>29668</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5160" sha1="kke4sdvees8nuqo84txdbz4onpetmzf" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>kke4sdvees8nuqo84txdbz4onpetmzf</sha1>
    </revision>
    <revision>
      <id>29965</id>
      <parentid>29668</parentid>
      <timestamp>2014-03-28T07:47:01Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>adding tux9th</comment>
      <origin>29965</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5207" sha1="kwu3vufb9dkr4x65a8wc3rb431rr3b1" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>kwu3vufb9dkr4x65a8wc3rb431rr3b1</sha1>
    </revision>
    <revision>
      <id>30957</id>
      <parentid>29965</parentid>
      <timestamp>2014-07-03T20:24:23Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <origin>30957</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5232" sha1="mf4g9yprg7kg24mxb4g1zsrej7lts0g" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>mf4g9yprg7kg24mxb4g1zsrej7lts0g</sha1>
    </revision>
    <revision>
      <id>31386</id>
      <parentid>30957</parentid>
      <timestamp>2014-10-23T02:28:31Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <origin>31386</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5278" sha1="4qe427zfdw5uqc4k00n6g3td8u0ljqz" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>4qe427zfdw5uqc4k00n6g3td8u0ljqz</sha1>
    </revision>
    <revision>
      <id>31822</id>
      <parentid>31386</parentid>
      <timestamp>2014-12-17T06:13:57Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <minor/>
      <comment>Wushin moved page [[Contributors]] to [[Dev:Contributors]]: Organize for SEO</comment>
      <origin>31822</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5278" sha1="4qe427zfdw5uqc4k00n6g3td8u0ljqz" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]</text>
      <sha1>4qe427zfdw5uqc4k00n6g3td8u0ljqz</sha1>
    </revision>
    <revision>
      <id>31840</id>
      <parentid>31822</parentid>
      <timestamp>2014-12-17T16:17:57Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* categorizing */</comment>
      <origin>31840</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5303" sha1="178z0uwtxzv1939qqdgi485v5nwxrez" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]
[[Category:Development]]</text>
      <sha1>178z0uwtxzv1939qqdgi485v5nwxrez</sha1>
    </revision>
    <revision>
      <id>32573</id>
      <parentid>31840</parentid>
      <timestamp>2015-02-07T02:56:27Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* updated for o11c's resignation */</comment>
      <origin>32573</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5354" sha1="6st4ki6r2ko0jdmlu2uwtqgu3im1lel" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:reference]]
[[Category:Development]]</text>
      <sha1>6st4ki6r2ko0jdmlu2uwtqgu3im1lel</sha1>
    </revision>
    <revision>
      <id>33696</id>
      <parentid>32573</parentid>
      <timestamp>2015-03-11T08:22:16Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <comment>removing category</comment>
      <origin>33696</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5331" sha1="qyhh7oatkq41oangu9v5arg6vtgdkzo" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>qyhh7oatkq41oangu9v5arg6vtgdkzo</sha1>
    </revision>
    <revision>
      <id>34810</id>
      <parentid>33696</parentid>
      <timestamp>2015-04-02T08:27:55Z</timestamp>
      <contributor>
        <username>Yubaba</username>
        <id>2094</id>
      </contributor>
      <origin>34810</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5392" sha1="h85biir05ld7mgaaz705t5szsh9uef2" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria || Sound scape, SoundFX, Writing, testing,
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>h85biir05ld7mgaaz705t5szsh9uef2</sha1>
    </revision>
    <revision>
      <id>34811</id>
      <parentid>34810</parentid>
      <timestamp>2015-04-02T08:28:53Z</timestamp>
      <contributor>
        <username>Yubaba</username>
        <id>2094</id>
      </contributor>
      <origin>34811</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5394" sha1="1m197gzlcfjoca24i2cpxnlrmkdmn1x" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria || Music, SoundFX, Writing, testing, Mapping
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>1m197gzlcfjoca24i2cpxnlrmkdmn1x</sha1>
    </revision>
    <revision>
      <id>34812</id>
      <parentid>34811</parentid>
      <timestamp>2015-04-02T08:29:51Z</timestamp>
      <contributor>
        <username>Yubaba</username>
        <id>2094</id>
      </contributor>
      <origin>34812</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5415" sha1="8krspjos8s5fspeaofjcxyxr5g1h2ig" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, testing, Mapping
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>8krspjos8s5fspeaofjcxyxr5g1h2ig</sha1>
    </revision>
    <revision>
      <id>40020</id>
      <parentid>34812</parentid>
      <timestamp>2015-12-13T04:59:28Z</timestamp>
      <contributor>
        <username>Pyndragon</username>
        <id>2420</id>
      </contributor>
      <comment>Add myself</comment>
      <origin>40020</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5479" sha1="3s6bj0d2gdg8znlhfks7ukgdvhceobd" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[developers|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, testing, Mapping
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| Daniel Foerster (Pyndragon) || tmwA, Script/dialogue fixes
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>3s6bj0d2gdg8znlhfks7ukgdvhceobd</sha1>
    </revision>
    <revision>
      <id>46004</id>
      <parentid>40020</parentid>
      <timestamp>2019-04-08T16:29:46Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <comment>Fix broken link</comment>
      <origin>46004</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5477" sha1="pgn77c0tmoujcu8vhtw5f7p6y1ubvac" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[TMW_Team|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, testing, Mapping
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| Daniel Foerster (Pyndragon) || tmwA, Script/dialogue fixes
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>pgn77c0tmoujcu8vhtw5f7p6y1ubvac</sha1>
    </revision>
    <revision>
      <id>50448</id>
      <parentid>46004</parentid>
      <timestamp>2020-01-18T20:13:24Z</timestamp>
      <contributor>
        <username>ComfyCheeks</username>
        <id>2713</id>
      </contributor>
      <comment>Added fother as pixel artist</comment>
      <origin>50448</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5505" sha1="af3arma702gju4gyr26al6f00wuc1ke" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[TMW_Team|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, testing, Mapping
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| Daniel Foerster (Pyndragon) || tmwA, Script/dialogue fixes
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| Fother || Pixel Artist
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>af3arma702gju4gyr26al6f00wuc1ke</sha1>
    </revision>
    <revision>
      <id>50449</id>
      <parentid>50448</parentid>
      <timestamp>2020-01-18T20:19:16Z</timestamp>
      <contributor>
        <username>ComfyCheeks</username>
        <id>2713</id>
      </contributor>
      <comment>Added fother, skipy, salmondine,</comment>
      <origin>50449</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5555" sha1="i2pjeymm2exdwjz6puajdti0x8ivtbh" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[TMW_Team|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || (ex-)[[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, testing, Mapping
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| Daniel Foerster (Pyndragon) || tmwA, Script/dialogue fixes
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || (ex-)[[Game Masters|Game master]]
|-
| doorsman || (ex-)[[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| Fother || Pixel Art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || (ex-)[[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || (ex-)[[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || (ex-)[[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Salmondine || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Skipy || Pixel art
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || (ex-)[[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>i2pjeymm2exdwjz6puajdti0x8ivtbh</sha1>
    </revision>
    <revision>
      <id>50451</id>
      <parentid>50449</parentid>
      <timestamp>2020-01-18T20:44:33Z</timestamp>
      <contributor>
        <username>ComfyCheeks</username>
        <id>2713</id>
      </contributor>
      <minor/>
      <comment>Some Game masters had (ex) beside their name but some didn't even though they are not current. Just made it more consistent.</comment>
      <origin>50451</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5528" sha1="sv2i336vtosiotwstbvxfug5coaq46w" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[TMW_Team|current main developers]].

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, Wiki edits, Testing, Art
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| Daniel Foerster (Pyndragon) || tmwA, Script/dialogue fixes
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || [[Game Masters|Game master]]
|-
| doorsman || [[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| Fother || Pixel Art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || [[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || [[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || [[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Salmondine || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Skipy || Pixel art
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || [[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>sv2i336vtosiotwstbvxfug5coaq46w</sha1>
    </revision>
    <revision>
      <id>50452</id>
      <parentid>50451</parentid>
      <timestamp>2020-01-18T21:24:16Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Toolchain warning. Actually, even `make contrib` is not being put on wiki, so.</comment>
      <origin>50452</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5568" sha1="tjv8onc96bgz1hi36irpe63pbgrcyoq" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[TMW_Team|current main developers]].

'''Note: This list may be outdated.'''

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, Wiki edits, Testing, Art
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| Daniel Foerster (Pyndragon) || tmwA, Script/dialogue fixes
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || [[Game Masters|Game master]]
|-
| doorsman || [[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| Fother || Pixel Art
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || [[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || [[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || [[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Salmondine || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Skipy || Pixel art
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || [[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>tjv8onc96bgz1hi36irpe63pbgrcyoq</sha1>
    </revision>
    <revision>
      <id>50453</id>
      <parentid>50452</parentid>
      <timestamp>2020-01-18T21:29:53Z</timestamp>
      <contributor>
        <username>ComfyCheeks</username>
        <id>2713</id>
      </contributor>
      <minor/>
      <comment>Removed the duplicates</comment>
      <origin>50453</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5514" sha1="ioybuwgqfbtyvnjg7yc15uzbonfnals" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[TMW_Team|current main developers]].

'''Note: This list may be outdated.'''

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, Wiki edits, Testing, Art
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| Daniel Foerster (Pyndragon) || tmwA, Script/dialogue fixes
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || [[Game Masters|Game master]]
|-
| doorsman || [[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || [[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || [[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || [[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Skipy || Pixel art
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || [[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>ioybuwgqfbtyvnjg7yc15uzbonfnals</sha1>
    </revision>
    <revision>
      <id>53628</id>
      <parentid>50453</parentid>
      <timestamp>2021-01-10T23:50:44Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <minor/>
      <comment>Added myself to the list as a wiki editor.</comment>
      <origin>53628</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5560" sha1="mxidgqs4arejf69440knfbkirajy6hn" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[TMW_Team|current main developers]].

'''Note: This list may be outdated.'''

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, Wiki edits, Testing, Art
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| Daniel Foerster (Pyndragon) || tmwA, Script/dialogue fixes
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || [[Game Masters|Game master]]
|-
| doorsman || [[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || [[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || [[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || [[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Skipy || Pixel art
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Speiros|Speiros]] || Wiki editing
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || [[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>mxidgqs4arejf69440knfbkirajy6hn</sha1>
    </revision>
    <revision>
      <id>59472</id>
      <parentid>53628</parentid>
      <timestamp>2024-03-27T03:56:42Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Contributors]] to [[Development:Contributors]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>53628</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5560" sha1="mxidgqs4arejf69440knfbkirajy6hn" xml:space="preserve">People that have contributed to the game, small and large. See also the page listing the [[TMW_Team|current main developers]].

'''Note: This list may be outdated.'''

{| class="sortable" style="width:100%; padding:5px; border-bottom:2px solid #efdead;"
|- style="background:#efdead; align:left;"
! Name (nick) !! Main contributions
|-
| Aaron Marks || Programming (server)
|-
| Alexander Baldeck (kth5/Shura) || Programming
|-
| [[User:Alons|AlOns]] || [[Game Masters|Game master]]
|-
| [[User:Gagaofdeath|Andrej Sinicyn]] || Programming
|-
| Andrew Hall (meway) || Pixel art
|-
| Bagzie || Pixel Art
|-
| [[User:Bear|Bear]] || Scripting
|-
| Big Crunch || [[Game Masters|Game master]]
|-
| CapitanAwesome || [[Game Masters|Game master]]
|-
| [[User:Cassy|Cassy]] || Pixel art, scripting, mapping 
|-
| [[User:Catfish_Man|Catfish_Man]] || Porting (Mac)
|-
| Cedric Borgese (moi1392) || Programming (client)
|-
| [[User:Chayenne|Chay (Bernhardt)]] || Pixel art, scripting, mapping 
|-
| Chicka-Maria (Comfycheeks/Yubaba) || Music, SoundFX, Writing, Wiki edits, Testing, Art
|-
| ChefChelios || Pixel art
|-
| Chetic || Mapping
|-
| [[User:Clef|Clef]] || Pixel art
|-
| [[User:Dabe|David Del Re (Dabe)]] || Writing
|-
| Daniel Foerster (Pyndragon) || tmwA, Script/dialogue fixes
|-
| [[User:Demon|Demon]] || Pixel art
|-
| [[User:Peavey|Dennis Friis (peavey)]] || Programming
|-
| [[User:deviexx|deviexx]] || Content management
|-
| Delasia || [[Game Masters|Game master]]
|-
| doorsman || [[Game Masters|Game master]]
|-
| Douglas Boffey || Programming (client)
|-
| Duane Bailey || Programming (client)
|-
| Eric Scrivner || Programming (client)
|-
| Filipa Serra e Silva (Lizandra) || Pixel art
|-
| Fredrik Reveny || Programming (client)
|-
| [[User:Modanung|Frode Lindeijer (Modanung)]] || Pixel art, concept art
|-
| [[User:Golgo|Golgo]] || Pixel art
|-
| Gnulia || Concept art
|-
| [[User:Silene|Guillaume Melquiond (Silene)]] || Programming
|-
| [[User:kindjal|Huynh Ngoc Chau Tran (kindjal)]] || Programming
|-
| Igor Morgado (imorgado) || Testing
|-
| Ira Rice || Programming (client)
|-
| [[User:Mra|Jan-Fabian Humann (Mra)]] || Programming
|-
| [[User:Fother|Jarrett Thomas-Huxley (Fother_J)]] || Pixel art
|-
| Jean-Francois Lampron ||
|-
| [[User:Superkoop|John Koopman (Superkoop)]] || Mapping
|-
| [[User:Javila|JosÃ© Ãvila (Javila)]] || Programming
|-
| Johannelaliberte || Testing, error and bug Reporting.
|-
| [[User:JoshLangley|Joshua Langley (JoshLangley)]] || Programming (client)
|-
| [[User:Jumpy|Jumpy]] || Translation (French)
|-
| [[User:Katze|Katze]] || [[Game Masters|Game master]]
|-
| [[User:Kess|Kess Vargavind]] || Translation (Swedish)
|-
| [[User:Kinetic|Kinetic]] || Pixel art
|-
| [[User:Kyokai|Kiyoshi Kyokai (Kyokai)]] || Game design
|-
| Leif Kildelund (GonzoDark) || Translation (Danish)
|-
| [[User:Len|Leonard Pabin III (Len)]] || Head of Pixellation; pixel art, concept art, mapping
|-
| Lloyd Bryant || Programming (client)
|-
| [[User:AnonDuck|AnonDuck]] || Programming (server), scripting, hacker
|-
| [[User:Maester Pixel|Maester Pixel]] || Pixel art
|-
| [[User:Magick|Magick]] || Music
|-
| [[User:maci|Marcel W. Wysocki (maci)]] || User support
|-
| Mark Dunbar (salmondine) || Pixel Art
|-
| [[User:IvanMorve|Martin (IvanMorve)]] || Pixel art
|-
| MasterKenobi || [[Game Masters|Game master]]
|-
| [[User:Usiu|Mateusz Kaduk (Usiu)]] || Programming
|-
| Matthias Hartmann || Programming (client), translation (German)
|-
| [[User:Meko|Meko]] || Scripting, mapping
|-
| [[User:Mkael|Mkael]] || Concept art
|-
| mrgrey || [[Game Masters|Game master]]
|-
| [[User:Narus|Narus]] ||[[Game Masters|Game master]]
|-
| [[User:Neko-mon|Neko-mon]] || Pixel art
|-
| Neorice || Pixel art
|-
| [[User:Nym|nym]] || Programming
|-
| [[User:o11c|o11c]] || Programming, Scripting 
|-
| [[User:EJlol|Oscar Klein Heerenbrink (EJlol)]] || Pixelart
|-
| [[User:Rodrigo|Arian Asimi (Pluto)]] ||  Pixel Art, Translation (Shqip)
|-
| [[User:Pajarico|Pajarico Guaje (Pajarico)]] || Art, writing
|-
| Platyna|| former Server Hostess, former Project Administrator.
|-
| Prsm || [[Game Masters|Game master]]
|-
| [[User:Pauan|Pauan]] || Concept art, pixel art, interface design
|-
| Qoal || [[Game Masters|Game master]], pixel art
|-
| [[User:QwertyDragon|QwertyDragon]] || Testing, error and bug Reporting, dialog writing
|-
| Rodney Dawes (dobey) || Packaging
|-
| [[User:Avaniel|Rogier Polak (Avaniel)]] || Programming
|-
| Romulo Fernandes (razor85) || Art
|-
| [[User:Talaroc|Ryan Voss (Talaroc)]] || Pixel art
|-
| Silent Dawn || [[Game Masters|Game master]]
|-
| Skipy || Pixel art
|-
| Simon Edwardsson (simonedw/simedw) || Packaging (Mac)
|-
| [[User:Sora|Sora]] || Pixel art
|-
| [[User:Speiros|Speiros]] || Wiki editing
|-
| [[User:Sull|Sull]] || Pixel art, hosting
|-
| [[User:Swimmy|Swimmy]] || Translation (Japanese)
|-
| Tatjana ||
|-
| Ti Sing Hao || Music
|-
| [[User:Tiana|Tiana]] || [[Game Masters|Game master]]
|-
| [[User:tux|tux9th]] || Mapping, Scripting
|-
| Ultramichy || former Server Hoster
|-
| [[User:veryape|veryapeGM]] || [[Game Masters|Game master]]
|-
| [[User:VictorSan|VictorSan]] || Programming
|-
| [[User:V0id|V0id (Vincent Petithory)]] || Mapping, Pixel Art, Programming, Scripting
|-
| [[User:Vink|Vink]] || [[Game Masters|Game master]]
|-
| Vlady || Art
|-
| [[User:Bertram|Yohann Ferreira (Bertram)]] || Programming
|-
| Wushin || Art, Content, Wiki, Mapping, Programming, Manavis
|-
| zenogais (bitshift2002) || Programming
|-
| [[User:Zipon|Zipon]] || Mapping
|}
[[Category:Development]]</text>
      <sha1>mxidgqs4arejf69440knfbkirajy6hn</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Creature proposal</title>
    <ns>0</ns>
    <id>2069</id>
    <revision>
      <id>3881</id>
      <timestamp>2006-04-12T19:03:53Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <origin>3881</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1433" sha1="ia6iumzq7xk4ftaezuzrr3fw4kesm3r" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----


* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).</text>
      <sha1>ia6iumzq7xk4ftaezuzrr3fw4kesm3r</sha1>
    </revision>
    <revision>
      <id>3882</id>
      <parentid>3881</parentid>
      <timestamp>2006-04-12T19:06:23Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <origin>3882</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1481" sha1="eakvl5cau6gbmu46wfm5i8j08fzlgw9" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).

----

= Creatures =
== Number 1 ==</text>
      <sha1>eakvl5cau6gbmu46wfm5i8j08fzlgw9</sha1>
    </revision>
    <revision>
      <id>3885</id>
      <parentid>3882</parentid>
      <timestamp>2006-04-12T19:27:51Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Template */</comment>
      <origin>3885</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1659" sha1="qk6cvp3faxtjy0r43dop0ghn0b4nki5" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power''' If it is a strong monster or weak, etc.
* '''Movements''' How fast it moves, both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Proposed as mini-monster, etc.

----

= Creatures =
== Number 1 ==</text>
      <sha1>qk6cvp3faxtjy0r43dop0ghn0b4nki5</sha1>
    </revision>
    <revision>
      <id>3886</id>
      <parentid>3885</parentid>
      <timestamp>2006-04-12T19:28:50Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Creatures */</comment>
      <origin>3886</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1975" sha1="sl0e3j52exyp9eg6l1p4ug6hscyk7gi" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).

----

= Creatures =
== Number 1 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>sl0e3j52exyp9eg6l1p4ug6hscyk7gi</sha1>
    </revision>
    <revision>
      <id>3887</id>
      <parentid>3886</parentid>
      <timestamp>2006-04-12T19:29:28Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Template */</comment>
      <origin>3887</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2020" sha1="aj35rh134i35nteptezzmna9lxoo365" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).

----

= Creatures =
== Number 1 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>aj35rh134i35nteptezzmna9lxoo365</sha1>
    </revision>
    <revision>
      <id>3888</id>
      <parentid>3887</parentid>
      <timestamp>2006-04-12T19:29:57Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Number 1 */</comment>
      <origin>3888</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2036" sha1="9l2m9yzac7u8efqo1a5kf0pbbk0yhfb" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).

----

= Creatures =
== Number 1 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==</text>
      <sha1>9l2m9yzac7u8efqo1a5kf0pbbk0yhfb</sha1>
    </revision>
    <revision>
      <id>3889</id>
      <parentid>3888</parentid>
      <timestamp>2006-04-12T19:34:13Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Number 2 */</comment>
      <origin>3889</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4063" sha1="4oaiblsiqxznixn3lcdf69mk3f4cubx" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).

----

= Creatures =
== Number 1 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 3 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>4oaiblsiqxznixn3lcdf69mk3f4cubx</sha1>
    </revision>
    <revision>
      <id>3890</id>
      <parentid>3889</parentid>
      <timestamp>2006-04-12T19:39:42Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Number 1 */ Fixed thumbnails</comment>
      <origin>3890</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4169" sha1="nx1xqdu0221tsaxh5fgodvn0ebezz3e" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 3 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>nx1xqdu0221tsaxh5fgodvn0ebezz3e</sha1>
    </revision>
    <revision>
      <id>3892</id>
      <parentid>3890</parentid>
      <timestamp>2006-04-12T19:46:10Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Template */</comment>
      <origin>3892</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4258" sha1="mjc0ooqcymgia8xfqqwhuxi9kakc7wl" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Proposed as mini-boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 3 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>mjc0ooqcymgia8xfqqwhuxi9kakc7wl</sha1>
    </revision>
    <revision>
      <id>3893</id>
      <parentid>3892</parentid>
      <timestamp>2006-04-12T19:47:00Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Number 2 */</comment>
      <origin>3893</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3886" sha1="gnlujexwzwd3hjknicycs9cx0yde4im" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).

----

= Creatures =
== Number 1 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>gnlujexwzwd3hjknicycs9cx0yde4im</sha1>
    </revision>
    <revision>
      <id>3894</id>
      <parentid>3893</parentid>
      <timestamp>2006-04-12T19:48:56Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Template */ Have saved this change 3 times now, trying once again :P</comment>
      <origin>3894</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4258" sha1="mjc0ooqcymgia8xfqqwhuxi9kakc7wl" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Proposed as mini-boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 3 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>mjc0ooqcymgia8xfqqwhuxi9kakc7wl</sha1>
    </revision>
    <revision>
      <id>3895</id>
      <parentid>3894</parentid>
      <timestamp>2006-04-12T19:50:11Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Number 2 */</comment>
      <origin>3895</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3886" sha1="gnlujexwzwd3hjknicycs9cx0yde4im" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).

----

= Creatures =
== Number 1 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>gnlujexwzwd3hjknicycs9cx0yde4im</sha1>
    </revision>
    <revision>
      <id>3896</id>
      <parentid>3895</parentid>
      <timestamp>2006-04-12T19:50:30Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Template */ Have saved this change 3 times now, trying once again :P</comment>
      <origin>3896</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4258" sha1="mjc0ooqcymgia8xfqqwhuxi9kakc7wl" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Proposed as mini-boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 3 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>mjc0ooqcymgia8xfqqwhuxi9kakc7wl</sha1>
    </revision>
    <revision>
      <id>3897</id>
      <parentid>3896</parentid>
      <timestamp>2006-04-12T19:50:52Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Number 2 */</comment>
      <origin>3897</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4081" sha1="b2ekhdci1y2d8drsn63lq49d4v59t3e" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements'''
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Proposed as mini-boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>b2ekhdci1y2d8drsn63lq49d4v59t3e</sha1>
    </revision>
    <revision>
      <id>3898</id>
      <parentid>3897</parentid>
      <timestamp>2006-04-12T19:52:08Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Template */</comment>
      <origin>3898</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4139" sha1="dkr5v7r7n8lv2mgnk67nzei2qyf68bm" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Proposed as mini-boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>dkr5v7r7n8lv2mgnk67nzei2qyf68bm</sha1>
    </revision>
    <revision>
      <id>3900</id>
      <parentid>3898</parentid>
      <timestamp>2006-04-12T19:56:19Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Number 3 */ Added third</comment>
      <origin>3900</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3999" sha1="7z24kh7z0bm2g3zbt8nwktxutq3gvv5" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Proposed as mini-boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>7z24kh7z0bm2g3zbt8nwktxutq3gvv5</sha1>
    </revision>
    <revision>
      <id>3901</id>
      <parentid>3900</parentid>
      <timestamp>2006-04-12T19:56:59Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Template */</comment>
      <origin>3901</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4014" sha1="2pmdurc5y7dosgwe6xvpai9ue2u413y" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==

[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>2pmdurc5y7dosgwe6xvpai9ue2u413y</sha1>
    </revision>
    <revision>
      <id>3902</id>
      <parentid>3901</parentid>
      <timestamp>2006-04-12T19:58:10Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Number 4 */ Another one. Modanung fill this up!</comment>
      <origin>3902</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3744" sha1="nmsf8bpt420eqx32dpvuxzs9yaie4hi" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
[[Image:Creature01-stand.png|100px]]
[[Image:Creature01-crouch.png|100px]]
[[Image:Creature01-attack.png|100px]]
[[Image:Creature01-dead.png|100px]]
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''</text>
      <sha1>nmsf8bpt420eqx32dpvuxzs9yaie4hi</sha1>
    </revision>
    <revision>
      <id>3905</id>
      <parentid>3902</parentid>
      <timestamp>2006-04-12T20:13:02Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Number 5 */ The fifth</comment>
      <origin>3905</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4014" sha1="k1hlm1d66d3u3c5mzt9y86b2pizuyh4" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name.
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).</text>
      <sha1>k1hlm1d66d3u3c5mzt9y86b2pizuyh4</sha1>
    </revision>
    <revision>
      <id>3906</id>
      <parentid>3905</parentid>
      <timestamp>2006-04-12T20:14:17Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Template */</comment>
      <origin>3906</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4065" sha1="agmzdpt8s7rwi42a7003lzmwpnq0mmm" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a human figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).</text>
      <sha1>agmzdpt8s7rwi42a7003lzmwpnq0mmm</sha1>
    </revision>
    <revision>
      <id>3907</id>
      <parentid>3906</parentid>
      <timestamp>2006-04-12T20:15:13Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Template */</comment>
      <origin>3907</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4072" sha1="r7euemjcqkgbz0bysi4hqr7jr5c1bjy" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).</text>
      <sha1>r7euemjcqkgbz0bysi4hqr7jr5c1bjy</sha1>
    </revision>
    <revision>
      <id>3908</id>
      <parentid>3907</parentid>
      <timestamp>2006-04-12T20:16:11Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Number 4 */</comment>
      <origin>3908</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4085" sha1="k9svtb1qcxyysnkl1dr4wipz2phx8rd" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).</text>
      <sha1>k9svtb1qcxyysnkl1dr4wipz2phx8rd</sha1>
    </revision>
    <revision>
      <id>3909</id>
      <parentid>3908</parentid>
      <timestamp>2006-04-12T20:24:06Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Number 5 */ One more</comment>
      <origin>3909</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4707" sha1="3q95g5hzrpxeip1mah30i6rvximhzyh" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Number 6 ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't moves, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...</text>
      <sha1>3q95g5hzrpxeip1mah30i6rvximhzyh</sha1>
    </revision>
    <revision>
      <id>4227</id>
      <parentid>3909</parentid>
      <timestamp>2006-05-15T17:58:33Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Number 6 */ Added one more</comment>
      <origin>4227</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5354" sha1="4fcas0uxwjxmoil252g2j03s6tya3hq" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Number 6 ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.</text>
      <sha1>4fcas0uxwjxmoil252g2j03s6tya3hq</sha1>
    </revision>
    <revision>
      <id>5456</id>
      <parentid>4227</parentid>
      <timestamp>2006-11-24T18:42:50Z</timestamp>
      <contributor>
        <username>Cblade</username>
        <id>567</id>
      </contributor>
      <comment>Cblade Idea 1</comment>
      <origin>5456</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6375" sha1="5yf5c8uor2dj1eio5ki6o3lmxjeqzvz" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Number 6 ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

==CBlade's Ideas 1==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Special Abilities:'''
*** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
*** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
*** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
*** Fangs of Draining - Everytime the spider attacks not only does it deal HP damage, but MP damage
as well, but the spider regains 1/4 of the MP damage as MP.
*** Magic Immunities - Time
*** Magic Immunities - Cold
*** Magic Vulernabilities - Fire
*** Magic Vulernabilities - Light
* '''Notes''' It likes to kill and kill for fun,</text>
      <sha1>5yf5c8uor2dj1eio5ki6o3lmxjeqzvz</sha1>
    </revision>
    <revision>
      <id>5457</id>
      <parentid>5456</parentid>
      <timestamp>2006-11-24T18:50:52Z</timestamp>
      <contributor>
        <username>Cblade</username>
        <id>567</id>
      </contributor>
      <comment>CBlade's Ideas 1</comment>
      <origin>5457</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6450" sha1="gm3o916vumxxxobzfiejngwduihjbau" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Number 6 ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

==CBlade's Ideas 1==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Fangs of Draining - Everytime the spider attacks not only does it deal HP damage, but MP damage
as well, but the spider regains 1/4 of the MP damage as MP.
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,</text>
      <sha1>gm3o916vumxxxobzfiejngwduihjbau</sha1>
    </revision>
    <revision>
      <id>5458</id>
      <parentid>5457</parentid>
      <timestamp>2006-11-24T18:56:35Z</timestamp>
      <contributor>
        <username>Cblade</username>
        <id>567</id>
      </contributor>
      <comment>CBlade's Ideas 1</comment>
      <origin>5458</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6490" sha1="fog7dzpftnxvh6z9u7p4ud0dv1bq3wu" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Number 3 ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 4 ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Number 6 ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

==CBlade's Ideas 1==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''</text>
      <sha1>fog7dzpftnxvh6z9u7p4ud0dv1bq3wu</sha1>
    </revision>
    <revision>
      <id>5479</id>
      <parentid>5458</parentid>
      <timestamp>2006-11-24T22:51:17Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>used monster names as chapter headlines</comment>
      <origin>5479</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6504" sha1="bbp6p1i3ypdnav8q3jhdk5vsu35mn9x" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''</text>
      <sha1>bbp6p1i3ypdnav8q3jhdk5vsu35mn9x</sha1>
    </revision>
    <revision>
      <id>5481</id>
      <parentid>5479</parentid>
      <timestamp>2006-11-25T17:00:19Z</timestamp>
      <contributor>
        <username>Cblade</username>
        <id>567</id>
      </contributor>
      <comment>Dok'e Mono</comment>
      <origin>5481</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7266" sha1="m8coufm25mmz8nlj789ca4en2gl7t4g" xml:space="preserve">{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''</text>
      <sha1>m8coufm25mmz8nlj789ca4en2gl7t4g</sha1>
    </revision>
    <revision>
      <id>6385</id>
      <parentid>5481</parentid>
      <timestamp>2007-03-24T21:07:18Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>-&gt;art development</comment>
      <origin>6385</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7283" sha1="adhihldwfu7qqg7eht1oncirpajv82m" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''</text>
      <sha1>adhihldwfu7qqg7eht1oncirpajv82m</sha1>
    </revision>
    <revision>
      <id>7402</id>
      <parentid>6385</parentid>
      <timestamp>2007-08-23T19:02:54Z</timestamp>
      <contributor>
        <username>Falcata</username>
        <id>566</id>
      </contributor>
      <comment>/* Creatures */  Added "Living Lava" monster.</comment>
      <origin>7402</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7835" sha1="l8ga451offmqce50ial26wlty8g9nxv" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

&lt;gallery&gt;
Image:Monster-slime-lava.png|{{Image:Monster-slime-lava.png}}
&lt;/gallery&gt;
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore
* '''Behaviour''' Attack when attacked, steals items like most slimes, but stolen items are destroyed unless immune to heat
* '''Notes''' Lava that has been inhabited by a fire elemental, granting it a semblance of life.</text>
      <sha1>l8ga451offmqce50ial26wlty8g9nxv</sha1>
    </revision>
    <revision>
      <id>7403</id>
      <parentid>7402</parentid>
      <timestamp>2007-08-23T19:04:09Z</timestamp>
      <contributor>
        <username>Falcata</username>
        <id>566</id>
      </contributor>
      <minor/>
      <comment>/* Living Lava */</comment>
      <origin>7403</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7785" sha1="c77l2y0qgjgfhhprz5ewtje1uex4e8c" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore
* '''Behaviour''' Attack when attacked, steals items like most slimes, but stolen items are destroyed unless immune to heat
* '''Notes''' Lava that has been inhabited by a fire elemental, granting it a semblance of life.</text>
      <sha1>c77l2y0qgjgfhhprz5ewtje1uex4e8c</sha1>
    </revision>
    <revision>
      <id>7404</id>
      <parentid>7403</parentid>
      <timestamp>2007-08-23T19:05:49Z</timestamp>
      <contributor>
        <username>Falcata</username>
        <id>566</id>
      </contributor>
      <comment>/* Living Lava */</comment>
      <origin>7404</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7826" sha1="4qtzc2ctkkolutg31zz57biaizr3g3b" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

* [http://wiki.themanaworld.org/images/4/44/Monster-slime-lava.png Image]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore
* '''Behaviour''' Attack when attacked, steals items like most slimes, but stolen items are destroyed unless immune to heat
* '''Notes''' Lava that has been inhabited by a fire elemental, granting it a semblance of life.</text>
      <sha1>4qtzc2ctkkolutg31zz57biaizr3g3b</sha1>
    </revision>
    <revision>
      <id>7420</id>
      <parentid>7404</parentid>
      <timestamp>2007-08-26T09:52:46Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/Falcata|Falcata]] ([[User_talk:Falcata|Talk]]); changed back to last version by [[User:Crush|Crush]]</comment>
      <origin>7420</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7283" sha1="adhihldwfu7qqg7eht1oncirpajv82m" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''</text>
      <sha1>adhihldwfu7qqg7eht1oncirpajv82m</sha1>
    </revision>
    <revision>
      <id>7421</id>
      <parentid>7420</parentid>
      <timestamp>2007-08-26T09:53:39Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Blah, I wanted to roll back only one revision</comment>
      <origin>7421</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7785" sha1="c77l2y0qgjgfhhprz5ewtje1uex4e8c" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore
* '''Behaviour''' Attack when attacked, steals items like most slimes, but stolen items are destroyed unless immune to heat
* '''Notes''' Lava that has been inhabited by a fire elemental, granting it a semblance of life.</text>
      <sha1>c77l2y0qgjgfhhprz5ewtje1uex4e8c</sha1>
    </revision>
    <revision>
      <id>7526</id>
      <parentid>7421</parentid>
      <timestamp>2007-08-28T04:39:11Z</timestamp>
      <contributor>
        <username>Kreeg</username>
        <id>513</id>
      </contributor>
      <comment>/* Enchanted Tree */</comment>
      <origin>7526</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7859" sha1="qi8vbe0jh2g2jwyj9jhpvzt36k9xja6" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore
* '''Behaviour''' Attack when attacked, steals items like most slimes, but stolen items are destroyed unless immune to heat
* '''Notes''' Lava that has been inhabited by a fire elemental, granting it a semblance of life.</text>
      <sha1>qi8vbe0jh2g2jwyj9jhpvzt36k9xja6</sha1>
    </revision>
    <revision>
      <id>7531</id>
      <parentid>7526</parentid>
      <timestamp>2007-09-03T00:20:22Z</timestamp>
      <contributor>
        <username>Falcata</username>
        <id>566</id>
      </contributor>
      <comment>/* Living Lava */ Expanded on monster information</comment>
      <origin>7531</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8212" sha1="mdiirn2au80hnp3ctnzil3xjlyuswzc" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.</text>
      <sha1>mdiirn2au80hnp3ctnzil3xjlyuswzc</sha1>
    </revision>
    <revision>
      <id>7627</id>
      <parentid>7531</parentid>
      <timestamp>2007-10-03T16:57:08Z</timestamp>
      <contributor>
        <username>Kreeg</username>
        <id>513</id>
      </contributor>
      <comment>/* Enchanted Tree */</comment>
      <origin>7627</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8266" sha1="mivk8r0kgc6bl1u84nmr6wqt1q4yc24" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.</text>
      <sha1>mivk8r0kgc6bl1u84nmr6wqt1q4yc24</sha1>
    </revision>
    <revision>
      <id>7628</id>
      <parentid>7627</parentid>
      <timestamp>2007-10-03T16:58:38Z</timestamp>
      <contributor>
        <username>Kreeg</username>
        <id>513</id>
      </contributor>
      <comment>/* Enchanted Tree */</comment>
      <origin>7628</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8272" sha1="52q0l18ce4wzb5mtvel6sfwwkxu601i" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.</text>
      <sha1>52q0l18ce4wzb5mtvel6sfwwkxu601i</sha1>
    </revision>
    <revision>
      <id>7690</id>
      <parentid>7628</parentid>
      <timestamp>2007-10-10T05:36:36Z</timestamp>
      <contributor>
        <username>Kreeg</username>
        <id>513</id>
      </contributor>
      <comment>/* Enchanted Tree */</comment>
      <origin>7690</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8378" sha1="8rd6jxx6fj1h9dediu9ufuenjl9n47w" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.gif|{{MonstertreeIdle.gif}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.</text>
      <sha1>8rd6jxx6fj1h9dediu9ufuenjl9n47w</sha1>
    </revision>
    <revision>
      <id>7691</id>
      <parentid>7690</parentid>
      <timestamp>2007-10-10T05:37:07Z</timestamp>
      <contributor>
        <username>Kreeg</username>
        <id>513</id>
      </contributor>
      <comment>/* Enchanted Tree */</comment>
      <origin>7691</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8378" sha1="ngjk8utqab2xd102s5ds2im7f1nha0g" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.</text>
      <sha1>ngjk8utqab2xd102s5ds2im7f1nha0g</sha1>
    </revision>
    <revision>
      <id>7692</id>
      <parentid>7691</parentid>
      <timestamp>2007-10-10T05:50:49Z</timestamp>
      <contributor>
        <username>Kreeg</username>
        <id>513</id>
      </contributor>
      <comment>/* Enchanted Tree */</comment>
      <origin>7692</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8458" sha1="gfc8m7jcyhhmur8ne5qa2ewk8n95wz0" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.</text>
      <sha1>gfc8m7jcyhhmur8ne5qa2ewk8n95wz0</sha1>
    </revision>
    <revision>
      <id>8226</id>
      <parentid>7692</parentid>
      <timestamp>2007-12-13T16:05:50Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Royal maggot */ Added section</comment>
      <origin>8226</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9227" sha1="4hrrn620kq7kd76qhoarwr2gu3mzsrz" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.</text>
      <sha1>4hrrn620kq7kd76qhoarwr2gu3mzsrz</sha1>
    </revision>
    <revision>
      <id>8263</id>
      <parentid>8226</parentid>
      <timestamp>2007-12-21T11:39:22Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Template */ Added 'Forum post' to template</comment>
      <origin>8263</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9292" sha1="7k2des4wruky9lbbujaxckpxaej9tdc" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.</text>
      <sha1>7k2des4wruky9lbbujaxckpxaej9tdc</sha1>
    </revision>
    <revision>
      <id>8264</id>
      <parentid>8263</parentid>
      <timestamp>2007-12-21T11:40:18Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Royal maggot */ Added link to forum</comment>
      <origin>8264</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9370" sha1="ra4w2fu50ctxhqg8rlpbkkwxl2t8wu3" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]</text>
      <sha1>ra4w2fu50ctxhqg8rlpbkkwxl2t8wu3</sha1>
    </revision>
    <revision>
      <id>8328</id>
      <parentid>8264</parentid>
      <timestamp>2007-12-25T17:09:27Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>/* Royal maggot */</comment>
      <origin>8328</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10188" sha1="1j6o2wrjip16mmcqsyy4j05wttqppa2" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]


== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''</text>
      <sha1>1j6o2wrjip16mmcqsyy4j05wttqppa2</sha1>
    </revision>
    <revision>
      <id>8568</id>
      <parentid>8328</parentid>
      <timestamp>2008-01-30T01:29:52Z</timestamp>
      <contributor>
        <username>Pkemrin</username>
        <id>1070</id>
      </contributor>
      <comment>/* Creatures */</comment>
      <origin>8568</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10798" sha1="fipco1ig01f8gun8zgosx0z3a7etei6" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]


== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Rabite ==

&lt;gallery&gt;
Image:Ribite_001.png
&lt;/gallery&gt;

* '''Name''' Rabite
* '''Type''' Unfriendly - Hostile
* '''Area''' Low Level Forest Area's
* '''HP''' Low
* '''Attack power''' Low
* '''Movements''' Slow, until someone gets within range, then medium to attack
* '''Contains items''' Candy, Occasionally chocolate
* '''Behavior''' Hops around in grassy area's until someone comes within range, then attacks without provocation
* '''Notes''' Creature should be commonly found hopping around in grassy forest area's. Should not ever drop rare items, but should occasionally drop healing items like candy.</text>
      <sha1>fipco1ig01f8gun8zgosx0z3a7etei6</sha1>
    </revision>
    <revision>
      <id>8570</id>
      <parentid>8568</parentid>
      <timestamp>2008-01-30T02:28:54Z</timestamp>
      <contributor>
        <username>Falcata</username>
        <id>566</id>
      </contributor>
      <comment>/* Rabite */</comment>
      <origin>8570</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10948" sha1="hinmkr1mjm17oyyg0u3jvsxy9h353bf" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]


== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Rabite ==

&lt;gallery&gt;
Image:Ribite_001.png
&lt;/gallery&gt;

* '''Name''' Rabite
* '''Type''' Unfriendly - Hostile
* '''Area''' Low Level Forest Area's
* '''HP''' Low
* '''Attack power''' Low
* '''Movements''' Slow, until someone gets within range, then medium to attack
* '''Contains items''' Candy, Occasionally chocolate
* '''Behavior''' Hops around in grassy area's until someone comes within range, then attacks without provocation
* '''Notes''' Creature should be commonly found hopping around in grassy forest area's. Should not ever drop rare items, but should occasionally drop healing items like candy.

'''Comment:''' I seriously doubt that the Rabite will be included in TMW, due to copyrights. [[User:Falcata|Bobby Jim]] 03:28, 30 January 2008 (CET)</text>
      <sha1>hinmkr1mjm17oyyg0u3jvsxy9h353bf</sha1>
    </revision>
    <revision>
      <id>8572</id>
      <parentid>8570</parentid>
      <timestamp>2008-01-30T10:39:00Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>Rabbite deleted - copyright violation.</comment>
      <origin>8572</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10188" sha1="1j6o2wrjip16mmcqsyy4j05wttqppa2" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]


== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''</text>
      <sha1>1j6o2wrjip16mmcqsyy4j05wttqppa2</sha1>
    </revision>
    <revision>
      <id>8894</id>
      <parentid>8572</parentid>
      <timestamp>2008-03-20T02:25:48Z</timestamp>
      <contributor>
        <username>Axltrozz</username>
        <id>602</id>
      </contributor>
      <comment>/*Bitan*/</comment>
      <origin>8894</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10466" sha1="mxaihwgvcu2tfk490lz8e57p83c2rli" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]


== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963</text>
      <sha1>mxaihwgvcu2tfk490lz8e57p83c2rli</sha1>
    </revision>
    <revision>
      <id>9713</id>
      <parentid>8894</parentid>
      <timestamp>2008-07-10T16:50:04Z</timestamp>
      <contributor>
        <username>Yanom</username>
        <id>1139</id>
      </contributor>
      <origin>9713</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10636" sha1="bf60rlg7bl4vy2jkt4grv1ldapykl7s" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]


== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack</text>
      <sha1>bf60rlg7bl4vy2jkt4grv1ldapykl7s</sha1>
    </revision>
    <revision>
      <id>9725</id>
      <parentid>9713</parentid>
      <timestamp>2008-07-11T01:50:43Z</timestamp>
      <contributor>
        <username>Yanom</username>
        <id>1139</id>
      </contributor>
      <comment>/* Ice Dragon */</comment>
      <origin>9725</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10660" sha1="hu5ofnu8456flytbhjrdhh5817ink2e" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]


== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]</text>
      <sha1>hu5ofnu8456flytbhjrdhh5817ink2e</sha1>
    </revision>
    <revision>
      <id>9732</id>
      <parentid>9725</parentid>
      <timestamp>2008-07-12T18:47:21Z</timestamp>
      <contributor>
        <username>Yanom</username>
        <id>1139</id>
      </contributor>
      <comment>/* Royal maggot */</comment>
      <origin>9732</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10659" sha1="6g9ugbpmg9ytg380k98g9trtg5h0xz3" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]</text>
      <sha1>6g9ugbpmg9ytg380k98g9trtg5h0xz3</sha1>
    </revision>
    <revision>
      <id>9860</id>
      <parentid>9732</parentid>
      <timestamp>2008-08-13T23:04:36Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>Homemade creature ^^.</comment>
      <origin>9860</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11669" sha1="c8ezw2s2potoli8towsc1v3do8g64na" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Zouveleki Orochii Productions ^^ (Â¬Â¬) ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Monster
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''HP''' Medium (1000 or so...?)
* '''Attack Power''' Medium (88-98)
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.



[[User:Z orochii|Z orochii]]</text>
      <sha1>c8ezw2s2potoli8towsc1v3do8g64na</sha1>
    </revision>
    <revision>
      <id>9861</id>
      <parentid>9860</parentid>
      <timestamp>2008-08-13T23:05:51Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>/* Zouveleki Orochii Productions ^^ (¬¬) */</comment>
      <origin>9861</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11670" sha1="n32gdtgt0xplz1txnc4lraxnfm4y486" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Zouveleki Orochii Productions ^^ (Â¬Â¬) ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''HP''' Medium (1000 or so...?)
* '''Attack Power''' Medium (88-98)
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.



[[User:Z orochii|Z orochii]]</text>
      <sha1>n32gdtgt0xplz1txnc4lraxnfm4y486</sha1>
    </revision>
    <revision>
      <id>9865</id>
      <parentid>9861</parentid>
      <timestamp>2008-08-13T23:13:10Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>format</comment>
      <origin>9865</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11634" sha1="6vlgeqtnt7t4dk82lawkeh96t0g47zs" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''HP''' Medium (1000 or so...?)
* '''Attack Power''' Medium (88-98)
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.



[[User:Z orochii|Z orochii]]</text>
      <sha1>6vlgeqtnt7t4dk82lawkeh96t0g47zs</sha1>
    </revision>
    <revision>
      <id>9869</id>
      <parentid>9865</parentid>
      <timestamp>2008-08-14T02:53:52Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>/* Wormoid */</comment>
      <origin>9869</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11633" sha1="njpe9xa0xjjpz27wy9odj2ui20r1e6e" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''HP''' Medium (700 or so...?)
* '''Attack Power''' Medium (48-53)
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.



[[User:Z orochii|Z orochii]]</text>
      <sha1>njpe9xa0xjjpz27wy9odj2ui20r1e6e</sha1>
    </revision>
    <revision>
      <id>9870</id>
      <parentid>9869</parentid>
      <timestamp>2008-08-14T03:01:11Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>/* Wormoid */</comment>
      <origin>9870</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11776" sha1="pbaozkipoejvf24098elnqroz1c860a" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be" or so, fitting between the Rudolf Slime and Red Slime or so ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

[[User:Z orochii|Z orochii]]</text>
      <sha1>pbaozkipoejvf24098elnqroz1c860a</sha1>
    </revision>
    <revision>
      <id>9871</id>
      <parentid>9870</parentid>
      <timestamp>2008-08-14T03:01:38Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>/* Wormoid */</comment>
      <origin>9871</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11793" sha1="btnl6nf8iz1lor22gqjtdn4g3xb04rh" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be" or so, fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

[[User:Z orochii|Z orochii]]</text>
      <sha1>btnl6nf8iz1lor22gqjtdn4g3xb04rh</sha1>
    </revision>
    <revision>
      <id>9872</id>
      <parentid>9871</parentid>
      <timestamp>2008-08-14T03:02:06Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>/* Wormoid */</comment>
      <origin>9872</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11787" sha1="cmn8kd5xt6pnee6i99m804ph2la4a2r" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

[[User:Z orochii|Z orochii]]</text>
      <sha1>cmn8kd5xt6pnee6i99m804ph2la4a2r</sha1>
    </revision>
    <revision>
      <id>9873</id>
      <parentid>9872</parentid>
      <timestamp>2008-08-14T03:03:48Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>/* Wormoid */</comment>
      <origin>9873</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11949" sha1="dx3nyi6hgxlez2cgstv1qt57yleoy3u" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation and check how am I doing a get better, and contribute with the game with better doings.</text>
      <sha1>dx3nyi6hgxlez2cgstv1qt57yleoy3u</sha1>
    </revision>
    <revision>
      <id>9874</id>
      <parentid>9873</parentid>
      <timestamp>2008-08-14T03:04:44Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>/* Wormoid */</comment>
      <origin>9874</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11883" sha1="qezcki07b0arczrnj2vd11gpzqqhvoi" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right?</text>
      <sha1>qezcki07b0arczrnj2vd11gpzqqhvoi</sha1>
    </revision>
    <revision>
      <id>9875</id>
      <parentid>9874</parentid>
      <timestamp>2008-08-14T03:05:22Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>/* Wormoid */</comment>
      <origin>9875</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11910" sha1="k35tcy1f9po6ge3xl98kat4go6opbhd" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more, hehehehh...</text>
      <sha1>k35tcy1f9po6ge3xl98kat4go6opbhd</sha1>
    </revision>
    <revision>
      <id>9876</id>
      <parentid>9875</parentid>
      <timestamp>2008-08-14T03:05:38Z</timestamp>
      <contributor>
        <username>Z orochii</username>
        <id>1238</id>
      </contributor>
      <comment>/* Wormoid */</comment>
      <origin>9876</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11921" sha1="1wautwggvs2xmupuzr0siv11l6jkuf7" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...</text>
      <sha1>1wautwggvs2xmupuzr0siv11l6jkuf7</sha1>
    </revision>
    <revision>
      <id>10138</id>
      <parentid>9876</parentid>
      <timestamp>2008-09-16T16:17:11Z</timestamp>
      <contributor>
        <username>Blodyavenger</username>
        <id>1268</id>
      </contributor>
      <comment>/* Number 1 */</comment>
      <origin>10138</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12001" sha1="tgjybk2b6xd8yb7ev32lanelwsp5gzc" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...</text>
      <sha1>tgjybk2b6xd8yb7ev32lanelwsp5gzc</sha1>
    </revision>
    <revision>
      <id>10139</id>
      <parentid>10138</parentid>
      <timestamp>2008-09-16T16:17:29Z</timestamp>
      <contributor>
        <username>Blodyavenger</username>
        <id>1268</id>
      </contributor>
      <comment>/* Number 1 */</comment>
      <origin>10139</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12013" sha1="9uwm2z2nfl7dwmfbikjvnhxe66prr75" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...</text>
      <sha1>9uwm2z2nfl7dwmfbikjvnhxe66prr75</sha1>
    </revision>
    <revision>
      <id>11003</id>
      <parentid>10139</parentid>
      <timestamp>2008-12-17T03:56:17Z</timestamp>
      <contributor>
        <username>NocarOlere</username>
        <id>1374</id>
      </contributor>
      <comment>rotroccc4</comment>
      <origin>11003</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12022" sha1="0me8jlgnvkqigimx69jptyta1r5c78n" xml:space="preserve">chiacele
{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...</text>
      <sha1>0me8jlgnvkqigimx69jptyta1r5c78n</sha1>
    </revision>
    <revision>
      <id>11009</id>
      <parentid>11003</parentid>
      <timestamp>2008-12-17T05:31:59Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Revert vandalism</comment>
      <origin>11009</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12013" sha1="9uwm2z2nfl7dwmfbikjvnhxe66prr75" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...</text>
      <sha1>9uwm2z2nfl7dwmfbikjvnhxe66prr75</sha1>
    </revision>
    <revision>
      <id>11282</id>
      <parentid>11009</parentid>
      <timestamp>2009-01-08T14:10:32Z</timestamp>
      <contributor>
        <username>NocarOlere</username>
        <id>1374</id>
      </contributor>
      <minor/>
      <comment>http://chifire.strefa.pl/news-935.html</comment>
      <origin>11282</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12327" sha1="aa0w6zrgxeof9wqlwx8s8ol5riy1txt" xml:space="preserve">[http://chifire.strefa.pl/news-935.html lost in space video clip] [http://bukgetert.0lx.net/sitemap.htm link] [http://baslozaro.is-the-boss.com/article99.html mo license bureau] [http://chifire.strefa.pl/news-1917.html jet plane crash videos] [http://lofaako.strefa.pl/article282.html pflugerville movie theater] 
{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...</text>
      <sha1>aa0w6zrgxeof9wqlwx8s8ol5riy1txt</sha1>
    </revision>
    <revision>
      <id>11317</id>
      <parentid>11282</parentid>
      <timestamp>2009-01-08T15:22:25Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>Undo revision 11282 by [[Special:Contributions/NocarOlere|NocarOlere]] ([[User talk:NocarOlere|Talk]])</comment>
      <origin>11317</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12013" sha1="9uwm2z2nfl7dwmfbikjvnhxe66prr75" xml:space="preserve">{{Category_art}}
{{Status_red}}
This page is intended as a whiteboard for graphic developers to post their creations.

I prefered the word ''creature'' over ''monster'' because I pretend to aglutinate every living being which is not a player nor a NPC.

I will suggest a standard questionnaire with a number of characteristics you should provide. If you don't know what to put on some of them don't worry! someone will fill the gaps with his/ her suggestions. 

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.

Feel free to suggest more fields. --[[User:Pajarico|Pajarico]] 21:03, 12 April 2006 (CEST)


----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketchs: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behaviour''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Assigned to''' Type the developer (pixel artists) name and the a link to the active forum thread (if any).
* '''Attached script''' Link to the script which defines the behaviour. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum post''' Link to the forum thread about this creature.

----

= Creatures =
== Number 1 ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbyes
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136

== Number 2 ==
&lt;gallery&gt;
Image:Creature-unknown01.jpg|{{Image:Creature-unknown01.jpg}}
&lt;/gallery&gt;
* '''Name''' 
* '''Type''' Friendly
* '''Area''' Between wet places and desertic lands, savannah and/or forest would fit quite well
* '''HP''' High
* '''Movements''' Moves slow
* '''Behaviour''' Roam, never attacks
* '''Assigned to'''

== Enchanted Tree ==
&lt;gallery&gt;
Image:Creaturetree.jpg|{{Image:Creaturetree.jpg}}
Image:CreaturetreeSizeProposal.jpg|{{Image:CreaturetreeSizeProposal.jpg}}
Image:Eviltree_proposal.png|{{Eviltree_proposal.png}}
Image:MonstertreeIdle.png|{{MonstertreeIdle.png}}
Image:MonstertreeWalking.gif|{{MonstertreeWalking.gif}}
&lt;/gallery&gt;
* '''Name''' Enchanted tree
* '''Type''' Unfriendly
* '''Area''' Forest
* '''HP''' Medium/high
* '''Attack power''' High
* '''Movements''' Doesn't move or very slow, attacks slow
* '''Contains items''' Wood
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to''' Kreeg
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?p=25948#25948

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behaviour''' 
* '''Assigned to'''

== Number 5 ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbyes. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).

== Swamp Flower ==
&lt;gallery&gt;
Image:Creature-swampflower01.png|{{Image:Creature-swampflower01.png}}
&lt;/gallery&gt;
* '''Name''' Swamp flower.
* '''Type''' Unfriendly.
* '''Area''' Forest, near pound or lakes.
* '''HP''' Medium/high.
* '''Attack power''' High.
* '''Movements''' Doesn't move, it just floats following the water current. Attacks fast.
* '''Contains items''' Special bush wood.
* '''Behaviour''' Attack when attacked or attack always.
* '''Assigned to'''
* '''Notes''' The ''special bush wood'' is what the spines are made with. Take it to a carpenter and he will craft durable items like plates, shields, helmets...

== Number 7 ==
''No image''
* '''Name''' ??.
* '''Type''' Unfriendly.
* '''Area''' Desert.
* '''HP''' Unknown.
* '''Attack power''' Very high (lethal).
* '''Movements''' Doesn't move, just waits.
* '''Behaviour''' Attack always if you fall in it.
* '''Assigned to'''
* '''Notes''' It lives under the sand, like some spiders, ants, or the worms in Star Wars. This creature is probably of an unknown nature and form as no one has seen it outside of the sand. As long as you don't fall in its  trap it can't touch you, but if you fall in it you are death. I haven't draw any sketch, it should be done with an animation derivated from the sand tiles.

== Beornth Spider ==
'' No Image ''
* '''Name: Beornth Spider'''
* '''Type: Always Hostle'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Crittical Hits (+10%) + Moderate Posion Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''

* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Posions - Increases Posion damage to Dangerous levels (10 mp / use)
** Improve Crittical - Increases the crittical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulernabilities - Fire
** Magic Vulernabilities - Light

* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Componants: Beornth Venom - Crafting Poisons'''
* '''Harvistable Componants: Beornth Belly - Crafting Mana Potions'''

==Dok'e Mono==
'' No Image ''
* '''Name: Dok'e Mono'''
* '''Creature Discription''' Like a miniture person, but green and ugly.
* '''Type: Neutral'''
* '''Area: Muddy Caves'''
* '''Hp:   50'''
* '''Mp:   250'''
* '''Attacks: Mild Damage, with a very good chance of stuning the combatant (+30%)'''
* '''Movement: Slow and Sneaky'''
* '''Behavior: Sneak and Steal first, if caught then fight.'''
* '''Assigned to: None Yet'''
* '''Size: 2 to 3 feet'''

* '''Special Abilities:'''
** Steal from players
** Knock Unconscious (15 Mp / Use) 45% Fail Chance, No Damage
** Regeneration (2 Mp / Sec) Heals 5 Hp / Sec
** Ressurect Other Monsters (20 Mp / Use) As Ressurection

*'''Notes:''' It likes to steal, alot of shiny objects...
*'''Harvistable Componants: NONE'''

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behaviour''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.

== Royal maggot ==

&lt;gallery&gt;
Image:Creature-royal maggot.png
Image:Peacock front02 - melbourne zoo.jpg
Image:Clearfin Lionfish.jpg
&lt;/gallery&gt;

* '''Name''' Royal maggot --Maggotae superioris (or whatever, really ;)).
* '''Type''' Foe.
* '''Area''' Desert.
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Same as current maggot with poisonous spines.
* '''Contains items'''
* '''Behaviour''' Mostly calm. Attacks when attacked or when it detects a threatening presence (players staying around for too long or such).
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' This a metamorphosed state of the maggot. I have to work on the spines, I had in mind to make them as an hybrid between the spines of that fish and the tail of a peacock.
* '''Forum post''' [http://forums.themanaworld.org/viewtopic.php?t=3278 here]

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behaviour''' Attacks when stepped near it.
* '''Assigned to'''
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum post'''

== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Forum Post''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963

== Ice Dragon ==

* '''Name''' Ice Dragon
* '''Type''' Boss
* '''Area''' Icy Cave
* '''HP''' Insane
* '''Attack Power''' Insane
* '''Movements''' Walk and Freeze attack
[[Image:icedragon.png]]

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''Behaviour''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...</text>
      <sha1>9uwm2z2nfl7dwmfbikjvnhxe66prr75</sha1>
    </revision>
    <revision>
      <id>13300</id>
      <parentid>11317</parentid>
      <timestamp>2009-09-13T17:01:55Z</timestamp>
      <contributor>
        <username>Fother</username>
        <id>1315</id>
      </contributor>
      <comment>Updated template section, reorg &amp; added additional projects (still need to add a few personal projects here as well).</comment>
      <origin>13300</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11159" sha1="j49hpp328i9145ob5o77dkvhqznlpnu" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16
= Forgotten Proposals/Concepts =
== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???</text>
      <sha1>j49hpp328i9145ob5o77dkvhqznlpnu</sha1>
    </revision>
    <revision>
      <id>13322</id>
      <parentid>13300</parentid>
      <timestamp>2009-09-18T01:36:41Z</timestamp>
      <contributor>
        <username>Fother</username>
        <id>1315</id>
      </contributor>
      <comment>/*Yeti*/ added to WIP List</comment>
      <origin>13322</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12065" sha1="1c1er09o2o9krrmf602knrw0bumwmeq" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???</text>
      <sha1>1c1er09o2o9krrmf602knrw0bumwmeq</sha1>
    </revision>
    <revision>
      <id>13336</id>
      <parentid>13322</parentid>
      <timestamp>2009-09-20T02:47:36Z</timestamp>
      <contributor>
        <username>Skipy</username>
        <id>1669</id>
      </contributor>
      <origin>13336</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12509" sha1="dwvijvokho484vqdmnqpweqe324w2ng" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==

&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==

[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==

[[Image:The_eye_plant.pngâ€Ž]]

* Name-eye plant
* Type- unfriendly 
* Area-bog
* HP- = mid..= to snakes
* Attack power-mid as wall= to snakes
* Movements-stay put...fix
* Contains items Items it should drop (or it shouldn't).-not sure????
* Behavior- attack always.
* Note-magic
* Proposed by skipy.(sorry if i did not put this on here right..first time)
* Proposal date- 
* Assigned to-
* Assignment date- 
* Last change-</text>
      <sha1>dwvijvokho484vqdmnqpweqe324w2ng</sha1>
    </revision>
    <revision>
      <id>14426</id>
      <parentid>13336</parentid>
      <timestamp>2009-12-28T12:30:37Z</timestamp>
      <contributor>
        <username>Viann</username>
        <id>1561</id>
      </contributor>
      <minor/>
      <origin>14426</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12722" sha1="2cta1pspkdswzblb24aeoy7z9o5szgp" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* Name-eye plant
* Type- unfriendly 
* Area-bog
* HP- = mid..= to snakes
* Attack power-mid as wall= to snakes
* Movements-stay put...fix
* Contains items Items it should drop (or it shouldn't).-not sure????
* Behavior- attack always.
* Note-magic
* Proposed by skipy.(sorry if i did not put this on here right..first time)
* Proposal date- 
* Assigned to-
* Assignment date- 
* Last change-</text>
      <sha1>2cta1pspkdswzblb24aeoy7z9o5szgp</sha1>
    </revision>
    <revision>
      <id>14427</id>
      <parentid>14426</parentid>
      <timestamp>2009-12-28T12:40:20Z</timestamp>
      <contributor>
        <username>Viann</username>
        <id>1561</id>
      </contributor>
      <comment>/* Voakwood */</comment>
      <origin>14427</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12801" sha1="d3pd25jh6yw3hvt7xhvo2usxatbjtjt" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|

|*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* Name-eye plant
* Type- unfriendly 
* Area-bog
* HP- = mid..= to snakes
* Attack power-mid as wall= to snakes
* Movements-stay put...fix
* Contains items Items it should drop (or it shouldn't).-not sure????
* Behavior- attack always.
* Note-magic
* Proposed by skipy.(sorry if i did not put this on here right..first time)
* Proposal date- 
* Assigned to-
* Assignment date- 
* Last change-</text>
      <sha1>d3pd25jh6yw3hvt7xhvo2usxatbjtjt</sha1>
    </revision>
    <revision>
      <id>14428</id>
      <parentid>14427</parentid>
      <timestamp>2009-12-28T12:40:57Z</timestamp>
      <contributor>
        <username>Viann</username>
        <id>1561</id>
      </contributor>
      <minor/>
      <comment>/* Voakwood */</comment>
      <origin>14428</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12801" sha1="ijhhuls9vv05p3hs5hnx3jpo7vtz246" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* Name-eye plant
* Type- unfriendly 
* Area-bog
* HP- = mid..= to snakes
* Attack power-mid as wall= to snakes
* Movements-stay put...fix
* Contains items Items it should drop (or it shouldn't).-not sure????
* Behavior- attack always.
* Note-magic
* Proposed by skipy.(sorry if i did not put this on here right..first time)
* Proposal date- 
* Assigned to-
* Assignment date- 
* Last change-</text>
      <sha1>ijhhuls9vv05p3hs5hnx3jpo7vtz246</sha1>
    </revision>
    <revision>
      <id>14439</id>
      <parentid>14428</parentid>
      <timestamp>2009-12-28T16:12:36Z</timestamp>
      <contributor>
        <username>Viann</username>
        <id>1561</id>
      </contributor>
      <origin>14439</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13229" sha1="elz1ni3u326ksee2jod6pufoel08hea" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* Name-eye plant
* Type- unfriendly 
* Area-bog
* HP- = mid..= to snakes
* Attack power-mid as wall= to snakes
* Movements-stay put...fix
* Contains items Items it should drop (or it shouldn't).-not sure????
* Behavior- attack always.
* Note-magic
* Proposed by skipy.(sorry if i did not put this on here right..first time)
* Proposal date- 
* Assigned to-
* Assignment date- 
* Last change-

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* Name: Biometrix
* Type: Friendly
* Area: desert
* HP: 500
* Attack power: 50-60
* Movements: fast
* Contains items:	
** Iron Ore
** Sulphur Powder
** pearl
* Behavior: attack when attacked
* Attached script: ???
* Proposal by: Viann
* Proposal date: 2009-December-28
* Assigned to: Viann
* Assignment date: 2009-December-27
* Last change: 2009-December-28</text>
      <sha1>elz1ni3u326ksee2jod6pufoel08hea</sha1>
    </revision>
    <revision>
      <id>14441</id>
      <parentid>14439</parentid>
      <timestamp>2009-12-28T16:39:54Z</timestamp>
      <contributor>
        <username>Viann</username>
        <id>1561</id>
      </contributor>
      <comment>/* eye plant */</comment>
      <origin>14441</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13237" sha1="ie0gqgme4x4n6vdc2esc5529q9callw" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* Name: eye plant
* Type: unfriendly 
* Area: bog
* HP:  = mid..= to snakes
* Attack power: mid as wall= to snakes
* Movements: stay put...fix
* Contains items: Items it should drop (or it shouldn't).-not sure????
* Behavior: attack always.
* Note: magic
* Proposed by: skipy.(sorry if i did not put this on here right..first time)
* Proposal date: 
* Assigned to:
* Assignment date: 
* Last change:

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* Name: Biometrix
* Type: Friendly
* Area: desert
* HP: 500
* Attack power: 50-60
* Movements: fast
* Contains items:	
** Iron Ore
** Sulphur Powder
** pearl
* Behavior: attack when attacked
* Attached script: ???
* Proposal by: Viann
* Proposal date: 2009-December-28
* Assigned to: Viann
* Assignment date: 2009-December-27
* Last change: 2009-December-28</text>
      <sha1>ie0gqgme4x4n6vdc2esc5529q9callw</sha1>
    </revision>
    <revision>
      <id>14442</id>
      <parentid>14441</parentid>
      <timestamp>2009-12-28T16:41:32Z</timestamp>
      <contributor>
        <username>Viann</username>
        <id>1561</id>
      </contributor>
      <comment>/* eye plant */</comment>
      <origin>14442</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13307" sha1="hhhnwkgv2m50fkltxl2tna85tv0geni" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' 
* '''Assigned to'''
* '''Assignment date''' 
* '''Last change'''

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* Name: Biometrix
* Type: Friendly
* Area: desert
* HP: 500
* Attack power: 50-60
* Movements: fast
* Contains items:	
** Iron Ore
** Sulphur Powder
** pearl
* Behavior: attack when attacked
* Attached script: ???
* Proposal by: Viann
* Proposal date: 2009-December-28
* Assigned to: Viann
* Assignment date: 2009-December-27
* Last change: 2009-December-28</text>
      <sha1>hhhnwkgv2m50fkltxl2tna85tv0geni</sha1>
    </revision>
    <revision>
      <id>14443</id>
      <parentid>14442</parentid>
      <timestamp>2009-12-28T16:42:02Z</timestamp>
      <contributor>
        <username>Viann</username>
        <id>1561</id>
      </contributor>
      <minor/>
      <comment>/* eye plant */</comment>
      <origin>14443</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13319" sha1="tpmhxmpizdb7j832ei981hr0olc4rfe" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' ???
* '''Assigned to'''???
* '''Assignment date''' ???
* '''Last change'''???

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* Name: Biometrix
* Type: Friendly
* Area: desert
* HP: 500
* Attack power: 50-60
* Movements: fast
* Contains items:	
** Iron Ore
** Sulphur Powder
** pearl
* Behavior: attack when attacked
* Attached script: ???
* Proposal by: Viann
* Proposal date: 2009-December-28
* Assigned to: Viann
* Assignment date: 2009-December-27
* Last change: 2009-December-28</text>
      <sha1>tpmhxmpizdb7j832ei981hr0olc4rfe</sha1>
    </revision>
    <revision>
      <id>14444</id>
      <parentid>14443</parentid>
      <timestamp>2009-12-28T16:43:37Z</timestamp>
      <contributor>
        <username>Viann</username>
        <id>1561</id>
      </contributor>
      <minor/>
      <comment>/* Biometrix */</comment>
      <origin>14444</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13389" sha1="1dfuy1g8rpfnhruo9x1t1gnbq2219sk" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' ???
* '''Assigned to'''???
* '''Assignment date''' ???
* '''Last change'''???

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* '''Name''' Biometrix
* '''Type''' Friendly
* '''Area''' desert
* '''HP''' 500
* '''Attack power''' 50-60
* '''Movements''' fast
* '''Contains items'''	
** Iron Ore
** Sulphur Powder
** pearl
* '''Behavior''' attack when attacked
* '''Attached script''' ???
* '''Proposal by''' Viann
* '''Proposal date''' 2009-December-28
* '''Assigned to''' Viann
* '''Assignment date''' 2009-December-27
* '''Last change''' 2009-December-28</text>
      <sha1>1dfuy1g8rpfnhruo9x1t1gnbq2219sk</sha1>
    </revision>
    <revision>
      <id>14445</id>
      <parentid>14444</parentid>
      <timestamp>2009-12-28T16:46:12Z</timestamp>
      <contributor>
        <username>Viann</username>
        <id>1561</id>
      </contributor>
      <minor/>
      <origin>14445</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13475" sha1="q0z6fj7kbh8mz7gqyrjbtp07gltnbmn" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* '''Name''' Biometrix
* '''Type''' Friendly
* '''Area''' desert
* '''HP''' 500
* '''Attack power''' 50-60
* '''Movements''' fast
* '''Contains items'''	
** Iron Ore
** Sulphur Powder
** pearl
* '''Behavior''' attack when attacked
* '''Attached script''' ???
* '''Proposal by''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Proposal date''' 2009-December-28
* '''Assigned to''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Assignment date''' 2009-December-27
* '''Last change''' 2009-December-28

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' ???
* '''Assigned to'''???
* '''Assignment date''' ???
* '''Last change'''???</text>
      <sha1>q0z6fj7kbh8mz7gqyrjbtp07gltnbmn</sha1>
    </revision>
    <revision>
      <id>16901</id>
      <parentid>14445</parentid>
      <timestamp>2010-12-13T12:03:22Z</timestamp>
      <contributor>
        <username>Newtkiller</username>
        <id>1563</id>
      </contributor>
      <comment>/* Voakwood */</comment>
      <origin>16901</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13565" sha1="hb059jk7ne2q4mwdvoipd2x26gkjy3p" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
*[[User:Newtkiller|&lt;span style="color:#009900"&gt;Newtkiller]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* '''Name''' Biometrix
* '''Type''' Friendly
* '''Area''' desert
* '''HP''' 500
* '''Attack power''' 50-60
* '''Movements''' fast
* '''Contains items'''	
** Iron Ore
** Sulphur Powder
** pearl
* '''Behavior''' attack when attacked
* '''Attached script''' ???
* '''Proposal by''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Proposal date''' 2009-December-28
* '''Assigned to''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Assignment date''' 2009-December-27
* '''Last change''' 2009-December-28

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' ???
* '''Assigned to'''???
* '''Assignment date''' ???
* '''Last change'''???</text>
      <sha1>hb059jk7ne2q4mwdvoipd2x26gkjy3p</sha1>
    </revision>
    <revision>
      <id>27077</id>
      <parentid>16901</parentid>
      <timestamp>2013-07-01T19:39:33Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Jaxad0127 moved page [[Creature proposal]] to [[Dev:Creature proposal]]</comment>
      <origin>27077</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13565" sha1="hb059jk7ne2q4mwdvoipd2x26gkjy3p" xml:space="preserve">{{Category_art}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
*[[User:Newtkiller|&lt;span style="color:#009900"&gt;Newtkiller]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* '''Name''' Biometrix
* '''Type''' Friendly
* '''Area''' desert
* '''HP''' 500
* '''Attack power''' 50-60
* '''Movements''' fast
* '''Contains items'''	
** Iron Ore
** Sulphur Powder
** pearl
* '''Behavior''' attack when attacked
* '''Attached script''' ???
* '''Proposal by''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Proposal date''' 2009-December-28
* '''Assigned to''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Assignment date''' 2009-December-27
* '''Last change''' 2009-December-28

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' ???
* '''Assigned to'''???
* '''Assignment date''' ???
* '''Last change'''???</text>
      <sha1>hb059jk7ne2q4mwdvoipd2x26gkjy3p</sha1>
    </revision>
    <revision>
      <id>29395</id>
      <parentid>27077</parentid>
      <timestamp>2014-02-20T04:10:26Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <origin>29395</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13561" sha1="dotv6u2ekx5siv304ls6m7eu0ieyusx" xml:space="preserve">{{Outdated}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
*[[User:Newtkiller|&lt;span style="color:#009900"&gt;Newtkiller]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* '''Name''' Biometrix
* '''Type''' Friendly
* '''Area''' desert
* '''HP''' 500
* '''Attack power''' 50-60
* '''Movements''' fast
* '''Contains items'''	
** Iron Ore
** Sulphur Powder
** pearl
* '''Behavior''' attack when attacked
* '''Attached script''' ???
* '''Proposal by''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Proposal date''' 2009-December-28
* '''Assigned to''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Assignment date''' 2009-December-27
* '''Last change''' 2009-December-28

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' ???
* '''Assigned to'''???
* '''Assignment date''' ???
* '''Last change'''???</text>
      <sha1>dotv6u2ekx5siv304ls6m7eu0ieyusx</sha1>
    </revision>
    <revision>
      <id>29396</id>
      <parentid>29395</parentid>
      <timestamp>2014-02-20T04:14:22Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* no longer relevant to current dev. do not delete */</comment>
      <origin>29396</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13568" sha1="8yubhuq1t59zkwhhwlmagih58o8if1d" xml:space="preserve">{{Status_outdated}}
This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???

==Ghost==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Fother-generic-ghost.png|{{Image:Fother-generic-ghost.png}}
&lt;/gallery&gt;
* '''Name''' Ghost
* '''Type''' Unfriendly
* '''Area''' Ancestral Tombs, Haunted Dwellings 
* '''HP''' ???
* '''Attack power''' ???
* '''Movements'''
** '''Walk''' Slow
** '''Tracking''' High Medium
* '''Contains items'''
** Ectoplasm
* '''Behavior''' Aggressive
* '''Notes''' Ghosts are the disembodied souls of the dead.
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' Include date of proposal
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-July 7
* '''Last change''' 2009-July 7

==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
*[[User:Newtkiller|&lt;span style="color:#009900"&gt;Newtkiller]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16

== Yeti ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Hkurn-yeti.gif|{{Image:Hkurn-yeti.gif}}
&lt;/gallery&gt;
* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name''' Yeti
* '''Type''' Unfriendly
* '''Area''' Snowy mountains
* '''HP''' ???
* '''Attack power'''???
* '''Movements''' ???
* '''Contains items''' ???
* '''Behavior''' Attacks on sight.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=8069
* '''Proposed by''' [[User:hkurn|hkurn]]
* '''Proposal date''' 2009-Aug 30
* '''Assigned to''' [[User:hkurn|hkurn]] and [[User:bcs86|bcs86]]
* '''Assignment date''' 2009-Aug 30
* '''Last change''' 2009-Sep
= Forgotten Proposals/Concepts =
== Bitan ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???
== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gifâ€Ž|100px]]
* '''Name''' Biometrix
* '''Type''' Friendly
* '''Area''' desert
* '''HP''' 500
* '''Attack power''' 50-60
* '''Movements''' fast
* '''Contains items'''	
** Iron Ore
** Sulphur Powder
** pearl
* '''Behavior''' attack when attacked
* '''Attached script''' ???
* '''Proposal by''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Proposal date''' 2009-December-28
* '''Assigned to''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Assignment date''' 2009-December-27
* '''Last change''' 2009-December-28

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.

== Living Lava ==
{{Opinions|

|
}}
[[Image:Monster-slime-lava.png]]
* '''Type''' Unfriendly
* '''Area''' Volcanic caverns, lava fields, similar regions.
* '''HP''' High
* '''Attack power''' Medium-High
* '''Movements''' slow speed, moves faster when hostile.
* '''Contains items''' Chunks of ore, any fire-resistant items it has picked up
* '''Behavior''' Attack when attacked, picks up items like most slimes, but the items are destroyed unless they are immune or resistant to fire.
* '''Notes''' This monster is lava that has been inhabited by a fire elemental, granting it a semblance of life.  When this monster moves, it leaves a thin trail of lava behind it, which damages anyone who comes in contact with it unless they have equipped boots that are fire resistant.  The lava cools and solidifies after a short while.  Upon dying, it slowly cools and solidifies.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.pngâ€Ž]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' ???
* '''Assigned to'''???
* '''Assignment date''' ???
* '''Last change'''???</text>
      <sha1>8yubhuq1t59zkwhhwlmagih58o8if1d</sha1>
    </revision>
    <revision>
      <id>29550</id>
      <parentid>29396</parentid>
      <timestamp>2014-02-28T06:39:30Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>leaving a note about better places (trello &amp; forum) to suggest monsters, fixing image links and deleting mobs that already have their own Trello card</comment>
      <origin>29550</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11423" sha1="5ks6t87bk1yhbnumy57jbq07uc9rx9x" xml:space="preserve">&lt;div style="background-color: #DDDDDD; text-align: center; border: 1px solid #555555; margin-bottom: 10px;"&gt;
'''This article is outdated'''

'''Please use our [https://trello.com/b/rNnx513z/art-development Art Development Board on Trello] or the subforum "[https://forums.themanaworld.org/viewforum.php?f=2 TMW]" if you want to suggest new mobs. Also this wiki page might help you: [[Dev:Monster Design]].'''

This page will get archieved soon and the monsters suggested transfered to Trello where they won't get forgotton.
&lt;/div&gt;


This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???


==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
*[[User:Newtkiller|&lt;span style="color:#009900"&gt;Newtkiller]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16



&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???


== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gif|100px]]
* '''Name''' Biometrix
* '''Type''' Friendly
* '''Area''' desert
* '''HP''' 500
* '''Attack power''' 50-60
* '''Movements''' fast
* '''Contains items'''	
** Iron Ore
** Sulphur Powder
** pearl
* '''Behavior''' attack when attacked
* '''Attached script''' ???
* '''Proposal by''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Proposal date''' 2009-December-28
* '''Assigned to''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Assignment date''' 2009-December-27
* '''Last change''' 2009-December-28

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.


==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.png]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' ???
* '''Assigned to'''???
* '''Assignment date''' ???
* '''Last change'''???</text>
      <sha1>5ks6t87bk1yhbnumy57jbq07uc9rx9x</sha1>
    </revision>
    <revision>
      <id>59474</id>
      <parentid>29550</parentid>
      <timestamp>2024-03-27T03:56:42Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Creature proposal]] to [[Development:Creature proposal]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>29550</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11423" sha1="5ks6t87bk1yhbnumy57jbq07uc9rx9x" xml:space="preserve">&lt;div style="background-color: #DDDDDD; text-align: center; border: 1px solid #555555; margin-bottom: 10px;"&gt;
'''This article is outdated'''

'''Please use our [https://trello.com/b/rNnx513z/art-development Art Development Board on Trello] or the subforum "[https://forums.themanaworld.org/viewforum.php?f=2 TMW]" if you want to suggest new mobs. Also this wiki page might help you: [[Dev:Monster Design]].'''

This page will get archieved soon and the monsters suggested transfered to Trello where they won't get forgotton.
&lt;/div&gt;


This page is intended as a whiteboard for graphic developers to post their creations.

Please, when suggesting other data add a comma and your suggest. Do not erase or alter previous work.



----
= Template =

* '''A drawing''' of the creature '''at least in one position''', showing a clear view of it; add a recognizable figure for comparing its height. Other advisable sketches: death frame, attacking frame, other action frame(s) (idle animation, hiding, etc.). Please, use thumbnails.
* '''Name'''
* '''Type''' Friendly/unfriendly (the latter concerns every creature capable of doing damage even if its not programmed to attack first).
* '''Area''' Where do you think it should spawn.
* '''HP'''
* '''Attack power'''
* '''Movements''' Speed of the movements both walking/flying and attacking.
* '''Contains items''' Items it should drop (or it shouldn't).
* '''Behavior''' Attack when attacked, attack always, make groups, roam, follow another being...
* '''Attached script''' Link to the script which defines the behavior. This will make more sense when scripts are usable ;).
* '''Notes''' Story, proposed as mini-boss or boss, trainable...
* '''Forum thread''' Link to the forum thread about this creature.
* '''Proposed by''' List the name of the proposer 
* '''Proposal date''' Include date of proposal
* '''Assigned to''' List the name of the person developing the graphics
* '''Assignment date''' Include date of artist assignment (when work began on creating pixel art for creature).
* '''Last change''' Include date of last change or work on assignment.



----

= Concepts =
{{Status_red}}

= Work in Progress =

== Beornth Spider ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Example-spiderboss.gif|{{Image:Example-spiderboss.gif}}
&lt;/gallery&gt;
* '''Name: Beornth Spider'''
* '''Type: Always Hostile'''
* '''Area: Muddy areas and Swamps'''
* '''Hp:   450'''
* '''Mp:   150'''
* '''Attack: Moderate + Improved Chance for Critical Hits (+10%) + Moderate Poison Damage + Moderate MP Damage'''
* '''Movement: Fast and Deadly, Sneaky'''
* '''Behavior: Let no one go by with out a fight'''
* '''Assigned to: None Yet '''
* '''Size: Standing 7 to 8 feet tall, about 6 feet by 7.5 feet dimensionally.'''
* '''Special Abilities:'''
** Web - Decreases movement, attack and casting speeds of those fighting it by 75%: Over an AOE (15mp / use)
** Amplify Poisons - Increases Poison damage to Dangerous levels (10 mp / use)
** Improve Critical - Increases the critical hit rate an additional 5% (5mp / use)
** Drain MP - restores 1/2 mp damage dealt
** Magic Immunities - Time
** Magic Immunities - Cold
** Magic Vulnerabilities - Fire
** Magic Vulnerabilities - Light
* '''Notes''' It likes to kill and kill for fun,
* '''Harvistable Components: Beornth Venom - Crafting Poisons'''
* '''Harvistable Components: Beornth Belly - Crafting Mana Potions'''
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' 2006-? ??
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' ???
* '''Last change''' ???


==Voakwood==
{{Opinions|
*[[User:Viann|&lt;span style="color:#009900"&gt;Viann]] 12:40, 28 December 2009 (UTC)
*[[User:Newtkiller|&lt;span style="color:#009900"&gt;Newtkiller]] 12:40, 28 December 2009 (UTC)
|
}}
&lt;gallery&gt;
Image:Concept-oldtree.png|{{Image:Concept-oldtree.png}}
&lt;/gallery&gt;
* '''Name''' Voakwood (a play on Volk + Oak + Wood)
* '''Type''' Friendly
* '''Area''' Woodland, Forest.
* '''HP''' A lot
* '''Attack power''' same as flowers.
* '''Movements'''
** '''Walk''' Stationary
** '''Tracking''' Only when in range
* '''Contains items'''
** Raw Log 4X
** Voakwood Sap
** Bird's Nest
** Bee Hive
** Jar of Honey
* '''Behavior''' Passive
* '''Notes''' She's what the Log Heads used to be part of before Jack liberated them from their mother's branches... still a concept. For TMWServ, Voakwood should have a small chance to spawn multiple Log heads to attack the player.  On death, if a Bee Hive is dropped, an ''Angry Swarm'' (creature consisting of a swirling set of bees) should be spawned to attack the player).
* '''Forum thread''' none
* '''Proposed by''' [[User:Fother|Fother]]
* '''Proposal date''' 2009-June 10
* '''Assigned to''' [[User:Fother|Fother]]
* '''Assignment date''' 2009-June 16
* '''Last change''' 2009-June 16



&lt;gallery&gt;
Image:BitanIcon.png|{{Image:BitanIcon.png}}
&lt;/gallery&gt;

* '''Name'''  Bitan.
* '''Type''' Boss
* '''Area''' Desert/Forest
* '''HP''' High
* '''Attack Power''' Very High
* '''Movements''' Walk and Attack
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=2963
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Carnivore nematode ==
{{Opinions|

|
}}

&lt;gallery&gt;
Image:Creature-nematode.png
&lt;/gallery&gt;

* '''Name''' Carnivore nematode.
* '''Type''' Foe.
* '''Area''' Desert (soft soil and sand dunes).
* '''HP''' Medium.
* '''Attack power''' Medium/high.
* '''Movements''' Attack (maybe with one animation will suffice, an animation placed underneath the player with earth moving), the rest of the movements happen underground.
* '''Contains items''' Meat.
* '''Behavior''' Attacks when stepped near it.
* '''Attached script'''
* '''Notes''' It moves and lives underground and detects movement on the surface. Then it attacks when the player is on an active zone. A script should rule which tiles are in the scope of an attack. The player can run to rocks, mountains or harder soil to avoid the attack.
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leap Monster ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Leapmonster.jpg|{{Image:Leapmonster.jpg}}
&lt;/gallery&gt;
* '''Name''' Leap monster
* '''Type''' 
* '''Area''' 
* '''HP''' 
* '''Attack power''' 
* '''Movements''' 
* '''Contains items'''
* '''Behavior''' 
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

== Leaflo ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature-forest01.png|{{Image:Creature-forest01.png}}
&lt;/gallery&gt;
* '''Name''' Leaflo
* '''Type''' Unfriendly.
* '''Area''' Forest, in pound or lakes.
* '''HP''' Low/medium.
* '''Attack power''' High, lethal for newbies. Very poisonous.
* '''Movements''' Moves slow, attacks fast.
* '''Contains items''' Poison.
* '''Behavior''' Attack when attacked or attack always.
* '''Notes''' Attacks with its tail when annoyed or if you step on it. The attack itself is very weak, but the inoculated poison stays for long and takes many HPs from the player until the poison dilutes or you take an antidote. Take the poison (item) to a specialized alchemist, he will produce a fine antidote. This was my first contribution in color for TMW ;).
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???


== Lurker ==
{{Opinions|

|
}}
&lt;gallery&gt;
Image:Creature01-stand.png|{{Image:Creature01-stand.png}}
Image:Creature01-crouch.png|{{Image:Creature01-crouch.png}}
Image:Creature01-attack.png|{{Image:Creature01-attack.png}}
Image:Creature01-dead.png|{{Image:Creature01-dead.png}}
&lt;/gallery&gt;
* '''Name'''
* '''Type''' Unfriendly
* '''Area''' Between wet places and desert lands, savannah and/or forest would fit quite well.
* '''HP''' Quite high
* '''Attack power''' High, lethal for newbies
* '''Movements''' Moves slow, attacks fast
* '''Contains items'''
* '''Behavior''' Attack when attacked or attack always.
* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' http://forums.themanaworld.org/viewtopic.php?f=8&amp;t=4872&amp;p=41136#p41136
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' [[User:Blodyavenger|Blodyavenger]]
* '''Assignment date''' ???
* '''Last change''' 2008-Sep 16

== Wormoid ==
{{Opinions|

|
}}

[[Image:Wormoid.png]]
* '''Name''' Wormoid (think 'bout a better one ok?)
* '''Type''' Medium Lvl Normal Creature
* '''Area''' Depending, it can be in a lava cave or an icy cave. Don't matter what, A CAVE... please.
* '''Movement''' Attack and walking at Medium speed(slower than player, but not much)
* '''Skills''' Stunning Powder
* '''Type''' Friendly
* '''Items''' Maybe rare ones...something like ruby eye (0.05%)
* '''HP''' Medium (420 or so...?)
* '''Attack Power''' Medium (40-50)
* '''Defense''' 15%
* '''Experience''' 150
* '''Behavior''' Attack when attacked, make groups. If near to death, it runs or something like that. They're a friendly specie of humanoids.
* '''Attached Script''' N/A
* '''Notes''' They came from the southern territories, always moving to the north. Have a good resistance to different climate conditions, but prefers the dark places cause of their sensible sight. Have a primitive nature, similar to the nomad humans on prehistory.
'''STATS - just doing a "would be", fitting between the Rudolf Slime and Red Slime or something like that ^^.'''

* '''Attached script''' ???
* '''Notes''' ???
* '''Forum thread''' ???
* '''Proposed by''' ???
* '''Proposal date''' ???
* '''Assigned to''' ???
* '''Assignment date''' ???
* '''Last change''' ???

Put your comments here, adding info: [[User:Z orochii|Z orochii]]. I just want to have some evaluation. Don't matter, right? Wait for more production, hehehehh...

==Biometrix==
{{Opinions|

|
}}
[[Image:Biometrix.gif|100px]]
* '''Name''' Biometrix
* '''Type''' Friendly
* '''Area''' desert
* '''HP''' 500
* '''Attack power''' 50-60
* '''Movements''' fast
* '''Contains items'''	
** Iron Ore
** Sulphur Powder
** pearl
* '''Behavior''' attack when attacked
* '''Attached script''' ???
* '''Proposal by''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Proposal date''' 2009-December-28
* '''Assigned to''' [[User:Viann|&lt;span style="color:#009900"&gt;Viann]]
* '''Assignment date''' 2009-December-27
* '''Last change''' 2009-December-28

= Completed Unreleased Creatures =
Please use this section for completed creatures that have not been implemented in game. For in game creatures, please see [[Monster_reference|Monster Reference]].  Please note that completed status does not guarantee content will be implemented.


==eye plant==
{{Opinions|

|
}}
[[Image:The_eye_plant.png]]

* '''Name''' eye plant
* '''Type''' unfriendly 
* '''Area''' bog
* '''HP'''  = mid..= to snakes
* '''Attack power''' mid as wall= to snakes
* '''Movements''' stay put...fix
* '''Contains items''' Items it should drop (or it shouldn't).-not sure????
* '''Behavior''' attack always.
* '''Note''' magic
* '''Proposed by''' skipy.(sorry if i did not put this on here right..first time)
* '''Proposal date''' ???
* '''Assigned to'''???
* '''Assignment date''' ???
* '''Last change'''???</text>
      <sha1>5ks6t87bk1yhbnumy57jbq07uc9rx9x</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Developers</title>
    <ns>0</ns>
    <id>945</id>
    <redirect title="TMW Team" />
    <revision>
      <id>33</id>
      <timestamp>2005-05-23T02:20:57Z</timestamp>
      <contributor>
        <ip>82.73.47.9</ip>
      </contributor>
      <comment>Added link to my user page.</comment>
      <origin>33</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="195" sha1="3ckbclz2if9jy3i2066mwnz9gw7t057" xml:space="preserve">* [[Chetic]]
* ElvenProgrammer
* [[User:BjÃ¸rn | BjÃ¸rn Lindeijer]]
* [[Sull]]
* [[Kyokai]]
* [[Talaroc]]
* [[Rotonen]]
* [[MaesterPixel]]
* [[Magick]]
* [[maci]]
* [[Irukard]]
* [[Aacheron]]</text>
      <sha1>3ckbclz2if9jy3i2066mwnz9gw7t057</sha1>
    </revision>
    <revision>
      <id>35</id>
      <parentid>33</parentid>
      <timestamp>2005-05-23T09:25:00Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added nym</comment>
      <origin>35</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="176" sha1="jkp0l7cfai4uxmtish78zcamlk79gyu" xml:space="preserve">* Chetic
* ElvenProgrammer
* [[User:BjÃ¸rn | BjÃ¸rn Lindeijer]]
* Sull
* Kyokai
* Talaroc
* Rotonen
* MaesterPixel
* Magick
* [[User:Nym | Nym]]
* maci
* Irukard
* Aacheron</text>
      <sha1>jkp0l7cfai4uxmtish78zcamlk79gyu</sha1>
    </revision>
    <revision>
      <id>58</id>
      <parentid>35</parentid>
      <timestamp>2005-05-23T09:51:17Z</timestamp>
      <contributor>
        <username>Mra</username>
        <id>2</id>
      </contributor>
      <comment>added Mra</comment>
      <origin>58</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="197" sha1="8a0zhdh9jrh59nxxkkn1hwo5gpdilpu" xml:space="preserve">* Aacheron
* [[User:BjÃ¸rn | BjÃ¸rn Lindeijer]]
* Chetic
* ElvenProgrammer
* Irukard
* Kyokai
* maci
* MaesterPixel
* Magick
* [[User:Mra | Mra]]
* [[User:Nym | Nym]]
* Rotonen
* Sull
* Talaroc</text>
      <sha1>8a0zhdh9jrh59nxxkkn1hwo5gpdilpu</sha1>
    </revision>
    <revision>
      <id>155</id>
      <parentid>58</parentid>
      <timestamp>2005-05-23T16:07:47Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added Pajarico</comment>
      <origin>155</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="228" sha1="0o8nc26qsso2kg22ig0k324h19quc5p" xml:space="preserve">* Aacheron
* [[User:BjÃ¸rn | BjÃ¸rn Lindeijer]]
* Chetic
* ElvenProgrammer
* Irukard
* Kyokai
* maci
* MaesterPixel
* Magick
* [[User:Mra | Mra]]
* [[User:Nym | Nym]]
* [[User:Pajarico | Pajarico]]
* Rotonen
* Sull
* Talaroc</text>
      <sha1>0o8nc26qsso2kg22ig0k324h19quc5p</sha1>
    </revision>
    <revision>
      <id>179</id>
      <parentid>155</parentid>
      <timestamp>2005-05-30T08:26:25Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <origin>179</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="255" sha1="tlr021vyaa1oc6wk8olrpaz3y48wgtd" xml:space="preserve">* Aacheron
* [[User:BjÃ¸rn | BjÃ¸rn Lindeijer]]
* Chetic
* [[User:ElvenProgrammer | ElvenProgrammer]]
* Irukard
* Kyokai
* maci
* MaesterPixel
* Magick
* [[User:Mra | Mra]]
* [[User:Nym | Nym]]
* [[User:Pajarico | Pajarico]]
* Rotonen
* Sull
* Talaroc</text>
      <sha1>tlr021vyaa1oc6wk8olrpaz3y48wgtd</sha1>
    </revision>
    <revision>
      <id>181</id>
      <parentid>179</parentid>
      <timestamp>2005-06-03T22:09:28Z</timestamp>
      <contributor>
        <ip>84.61.5.101</ip>
      </contributor>
      <origin>181</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="271" sha1="2cpri9i47snbx7wpaurybsni4anq7h1" xml:space="preserve">* Aacheron
* [[User:BjÃ¸rn | BjÃ¸rn Lindeijer]]
* Chetic
* [[User:ElvenProgrammer | ElvenProgrammer]]
* Irukard
* Kyokai
* [[User:maci | maci]]
* MaesterPixel
* Magick
* [[User:Mra | Mra]]
* [[User:Nym | Nym]]
* [[User:Pajarico | Pajarico]]
* Rotonen
* Sull
* Talaroc</text>
      <sha1>2cpri9i47snbx7wpaurybsni4anq7h1</sha1>
    </revision>
    <revision>
      <id>182</id>
      <parentid>181</parentid>
      <timestamp>2005-06-04T17:32:00Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Table layout, occupations added</comment>
      <origin>182</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1350" sha1="s0jzcbjl3xdjzfh89d2qg2mtfrruupd" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
|-
| style="background:#f6f0e0;" | [[User:ElvenProgrammer|ElvenProgrammer]]
| style="background:#f6f0e0;" | Project leader, programmer
|-
| [[User:Golgo|Golgo]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Irukard|Irukard]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Kyokai|Kyokai]]
| Game systems designer
|-
| style="background:#f6f0e0;" | [[User:maci|maci]]
| style="background:#f6f0e0;" | User support
|-
| [[User:Magick|Magick]]
| Musician
|-
| style="background:#f6f0e0;" | [[User:Modanung|Modanung]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Mra|Mra]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|-
| style="background:#f6f0e0; border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="background:#f6f0e0; border-bottom: 2px solid #efdead;" | Programmer
|}</text>
      <sha1>s0jzcbjl3xdjzfh89d2qg2mtfrruupd</sha1>
    </revision>
    <revision>
      <id>190</id>
      <parentid>182</parentid>
      <timestamp>2005-06-05T04:44:56Z</timestamp>
      <contributor>
        <username>Demon</username>
        <id>13</id>
      </contributor>
      <origin>190</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1391" sha1="7utu1hpw9qj1u209dr28zraugvcmzve" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
|-
| style="background:#f6f0e0;" | [[User:ElvenProgrammer|ElvenProgrammer]]
| style="background:#f6f0e0;" | Project leader, programmer
|-
| [[User:Golgo|Golgo]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Irukard|Irukard]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Kyokai|Kyokai]]
| Game systems designer
|-
| style="background:#f6f0e0;" | [[User:maci|maci]]
| style="background:#f6f0e0;" | User support
|-
| [[User:Magick|Magick]]
| Musician
|-
| style="background:#f6f0e0;" | [[User:Modanung|Modanung]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Mra|Mra]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|-
| [[User:Demon|Demon]]
| Pixel artist
|-
| style="background:#f6f0e0; border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="background:#f6f0e0; border-bottom: 2px solid #efdead;" | Programmer
|}</text>
      <sha1>7utu1hpw9qj1u209dr28zraugvcmzve</sha1>
    </revision>
    <revision>
      <id>196</id>
      <parentid>190</parentid>
      <timestamp>2005-06-05T17:56:07Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Update row background color</comment>
      <origin>196</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1411" sha1="kfwet7x0fk2onozdwevn806sc48uynz" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
|-
| style="background:#f6f0e0;" | [[User:ElvenProgrammer|ElvenProgrammer]]
| style="background:#f6f0e0;" | Project leader, programmer
|-
| [[User:Golgo|Golgo]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Irukard|Irukard]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Kyokai|Kyokai]]
| Game systems designer
|-
| style="background:#f6f0e0;" | [[User:maci|maci]]
| style="background:#f6f0e0;" | User support
|-
| [[User:Magick|Magick]]
| Musician
|-
| style="background:#f6f0e0;" | [[User:Modanung|Modanung]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Mra|Mra]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
|-
| style="border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;" | Programmer
|}</text>
      <sha1>kfwet7x0fk2onozdwevn806sc48uynz</sha1>
    </revision>
    <revision>
      <id>221</id>
      <parentid>196</parentid>
      <timestamp>2005-06-06T23:59:37Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added Bear, Javila and deviexx</comment>
      <origin>221</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1635" sha1="74q0qv33c0bfz0vfizt0bwd85qo3uk3" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:deviexx|deviexx]]
| Content manager
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Irukard|Irukard]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Kyokai|Kyokai]]
| Game systems designer
|-
| style="background:#f6f0e0;" | [[User:maci|maci]]
| style="background:#f6f0e0;" | User support
|-
| [[User:Magick|Magick]]
| Musician
|-
| style="background:#f6f0e0;" | [[User:Modanung|Modanung]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Mra|Mra]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|-
| style="background:#f6f0e0; border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="background:#f6f0e0; border-bottom: 2px solid #efdead;" | Programmer
|}</text>
      <sha1>74q0qv33c0bfz0vfizt0bwd85qo3uk3</sha1>
    </revision>
    <revision>
      <id>223</id>
      <parentid>221</parentid>
      <timestamp>2005-06-11T06:51:02Z</timestamp>
      <contributor>
        <ip>80.183.109.101</ip>
      </contributor>
      <origin>223</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1698" sha1="qma9wo17ilur9cscfvpqvtkotwpc05y" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:deviexx|deviexx]]
| Content manager
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Irukard|Irukard]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:kindjal|kindjal]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
|-
| [[User:maci|maci]]
| User support
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
|-
| [[User:Modanung|Modanung]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Nym|nym]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
|-
| style="border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;" | Programmer
|}</text>
      <sha1>qma9wo17ilur9cscfvpqvtkotwpc05y</sha1>
    </revision>
    <revision>
      <id>224</id>
      <parentid>223</parentid>
      <timestamp>2005-06-11T14:17:17Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <origin>224</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1797" sha1="3dxgtsqlpqab2x03f0ba5jt74yb7949" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:deviexx|deviexx]]
| Content manager
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Irukard|Irukard]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:kindjal|kindjal]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
|-
| [[User:maci|maci]]
| User support
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
|-
| [[User:Modanung|Modanung]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Nym|nym]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
|-
| style="border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;" | Programmer
|}</text>
      <sha1>3dxgtsqlpqab2x03f0ba5jt74yb7949</sha1>
    </revision>
    <revision>
      <id>225</id>
      <parentid>224</parentid>
      <timestamp>2005-06-11T14:17:56Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <origin>225</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1737" sha1="6m7nzxfygb2ytf4bwibuic2nb8v8ymo" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:deviexx|deviexx]]
| Content manager
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Clef|Clef]]
| Pixel artist
|-
| [[User:Irukard|Irukard]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:kindjal|kindjal]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
|-
| [[User:maci|maci]]
| User support
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
|-
| [[User:Modanung|Modanung]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Nym|nym]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
|-
| style="border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;" | Programmer
|}</text>
      <sha1>6m7nzxfygb2ytf4bwibuic2nb8v8ymo</sha1>
    </revision>
    <revision>
      <id>226</id>
      <parentid>225</parentid>
      <timestamp>2005-06-11T14:20:05Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <origin>226</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1738" sha1="dlstc04gi6ea7ru795y63fgz0iv9bub" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:deviexx|deviexx]]
| Content manager
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Irukard|Irukard]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:kindjal|kindjal]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
|-
| [[User:maci|maci]]
| User support
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
|-
| [[User:Modanung|Modanung]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Nym|nym]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | "Pixel artist
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|-
| style="border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;" | Programmer
|}</text>
      <sha1>dlstc04gi6ea7ru795y63fgz0iv9bub</sha1>
    </revision>
    <revision>
      <id>230</id>
      <parentid>226</parentid>
      <timestamp>2005-06-11T14:20:47Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <origin>230</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1777" sha1="c762wtqniqa67akzcf0z6409dct7tz2" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:deviexx|deviexx]]
| Content manager
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Irukard|Irukard]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:kindjal|kindjal]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
|-
| [[User:maci|maci]]
| User support
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
|-
| [[User:Modanung|Modanung]]
| Pixel artist
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
|-
| [[User:Nym|nym]]
| Programmer
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
|}</text>
      <sha1>c762wtqniqa67akzcf0z6409dct7tz2</sha1>
    </revision>
    <revision>
      <id>231</id>
      <parentid>230</parentid>
      <timestamp>2005-06-11T23:27:31Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added location field</comment>
      <origin>231</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2292" sha1="8o27pvard6rzxs0me7inig91yzkberz" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
| 
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:kindjal|kindjal]]
| Programmer
| 
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
| style="background:#f6f0e0;" | 
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| 
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | 
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| 
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>8o27pvard6rzxs0me7inig91yzkberz</sha1>
    </revision>
    <revision>
      <id>232</id>
      <parentid>231</parentid>
      <timestamp>2005-06-11T23:33:36Z</timestamp>
      <contributor>
        <ip>213.25.76.128</ip>
      </contributor>
      <origin>232</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2298" sha1="ay9ujdvaoll6ap1rvar7kda9d5dduxu" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
| 
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:kindjal|kindjal]]
| Programmer
| 
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
| style="background:#f6f0e0;" | 
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| 
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | 
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| 
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>ay9ujdvaoll6ap1rvar7kda9d5dduxu</sha1>
    </revision>
    <revision>
      <id>233</id>
      <parentid>232</parentid>
      <timestamp>2005-06-11T23:36:01Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Pajarico from Spain</comment>
      <origin>233</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2303" sha1="k10rlckxvtn60hjqajdcixjn4wf3033" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
| 
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:kindjal|kindjal]]
| Programmer
| 
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
| style="background:#f6f0e0;" | 
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| 
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| 
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>k10rlckxvtn60hjqajdcixjn4wf3033</sha1>
    </revision>
    <revision>
      <id>244</id>
      <parentid>233</parentid>
      <timestamp>2005-06-11T23:37:54Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Correction</comment>
      <origin>244</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2303" sha1="n4glso0r0wqkxpq2b49y7534l68jmdn" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
| 
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:kindjal|kindjal]]
| Programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
| style="background:#f6f0e0;" | 
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| 
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| 
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>n4glso0r0wqkxpq2b49y7534l68jmdn</sha1>
    </revision>
    <revision>
      <id>255</id>
      <parentid>244</parentid>
      <timestamp>2005-06-12T10:31:42Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Rotonen from Finland</comment>
      <origin>255</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2310" sha1="9x5kac5kfqaz7g6zkj7jdvvxkd9nluv" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
| 
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:kindjal|kindjal]]
| Programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
| style="background:#f6f0e0;" | 
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| 
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>9x5kac5kfqaz7g6zkj7jdvvxkd9nluv</sha1>
    </revision>
    <revision>
      <id>256</id>
      <parentid>255</parentid>
      <timestamp>2005-06-13T09:21:28Z</timestamp>
      <contributor>
        <username>Nym</username>
        <id>6</id>
      </contributor>
      <origin>256</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2319" sha1="s36jg89pnmdx73mk63a3p2hkl627cf9" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
| 
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:kindjal|kindjal]]
| Programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
| style="background:#f6f0e0;" | 
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>s36jg89pnmdx73mk63a3p2hkl627cf9</sha1>
    </revision>
    <revision>
      <id>257</id>
      <parentid>256</parentid>
      <timestamp>2005-06-13T09:24:04Z</timestamp>
      <contributor>
        <ip>213.130.251.49</ip>
      </contributor>
      <origin>257</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2372" sha1="nnmw8spnq6pfb9rg5t0ddf32xpz1q7w" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
| 
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:kindjal|kindjal]]
| Programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Magick|Magick]]
| style="background:#f6f0e0;" | Musician
| style="background:#f6f0e0;" | 
|-
| [[User:Mkael|Mkael]]
| Concept artist
| Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>nnmw8spnq6pfb9rg5t0ddf32xpz1q7w</sha1>
    </revision>
    <revision>
      <id>259</id>
      <parentid>257</parentid>
      <timestamp>2005-06-13T09:30:28Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Order corrections</comment>
      <origin>259</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2402" sha1="afuef5gb9fahkgodbaqft1kiw50b6yu" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
| 
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:Clef|Clef]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:ElvenProgrammer|ElvenProgrammer]]
| style="background:#f6f0e0;" | Project leader, programmer
| style="background:#f6f0e0;" | Italy
|-
| [[User:Golgo|Golgo]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Irukard|Irukard]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | Poland
|-
| [[User:Javila|Javila]]
| Programmer
| 
|-
| style="background:#f6f0e0;" | [[User:kindjal|kindjal]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Italy
|-
| [[User:Kyokai|Kyokai]]
| Game systems designer
| 
|-
| style="background:#f6f0e0;" | [[User:maci|maci]]
| style="background:#f6f0e0;" | User support
| style="background:#f6f0e0;" | Germany
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| style="border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;" | Programmer
| style="border-bottom: 2px solid #efdead;" | Poland
|}</text>
      <sha1>afuef5gb9fahkgodbaqft1kiw50b6yu</sha1>
    </revision>
    <revision>
      <id>261</id>
      <parentid>259</parentid>
      <timestamp>2005-06-13T09:41:44Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added Sull, Bertram and Maester Pixel</comment>
      <origin>261</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2739" sha1="qgkb5837wylsb0ygazv1qbusoobkbd3" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:Bertram|Bertram]]
| style="background:#f6f0e0;" | Programmer, Debian package maintainer
| style="background:#f6f0e0;" | France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Demon|Demon]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:deviexx|deviexx]]
| style="background:#f6f0e0;" | Content manager
| style="background:#f6f0e0;" | 
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:kindjal|kindjal]]
| Programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>qgkb5837wylsb0ygazv1qbusoobkbd3</sha1>
    </revision>
    <revision>
      <id>264</id>
      <parentid>261</parentid>
      <timestamp>2005-06-13T15:22:17Z</timestamp>
      <contributor>
        <username>Javila</username>
        <id>4</id>
      </contributor>
      <comment>Added my country ;-)</comment>
      <origin>264</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2745" sha1="7msmbx2auue66te0b8cah60o8cowy18" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:Bertram|Bertram]]
| style="background:#f6f0e0;" | Programmer, Debian package maintainer
| style="background:#f6f0e0;" | France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Demon|Demon]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:deviexx|deviexx]]
| style="background:#f6f0e0;" | Content manager
| style="background:#f6f0e0;" | 
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>7msmbx2auue66te0b8cah60o8cowy18</sha1>
    </revision>
    <revision>
      <id>323</id>
      <parentid>264</parentid>
      <timestamp>2005-06-14T05:29:18Z</timestamp>
      <contributor>
        <ip>80.183.109.101</ip>
      </contributor>
      <origin>323</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2763" sha1="ieamzwradgpum4djaileitdzqs2r96p" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:Bertram|Bertram]]
| style="background:#f6f0e0;" | Programmer, Debian package maintainer
| style="background:#f6f0e0;" | France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Demon|Demon]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:deviexx|deviexx]]
| style="background:#f6f0e0;" | Content manager
| style="background:#f6f0e0;" | 
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>ieamzwradgpum4djaileitdzqs2r96p</sha1>
    </revision>
    <revision>
      <id>324</id>
      <parentid>323</parentid>
      <timestamp>2005-06-28T08:26:39Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <comment>fixing order</comment>
      <origin>324</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2763" sha1="jes7j0qnb92036pjf8s03fh1rkuyrxa" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:Bertram|Bertram]]
| style="background:#f6f0e0;" | Programmer, Debian package maintainer
| style="background:#f6f0e0;" | France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Demon|Demon]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:deviexx|deviexx]]
| style="background:#f6f0e0;" | Content manager
| style="background:#f6f0e0;" | 
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>jes7j0qnb92036pjf8s03fh1rkuyrxa</sha1>
    </revision>
    <revision>
      <id>351</id>
      <parentid>324</parentid>
      <timestamp>2005-06-28T08:36:47Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <comment>fixing style</comment>
      <origin>351</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2763" sha1="e74zdxg2rly0ro3mk7gsjpkrvhy7jml" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:Bertram|Bertram]]
| style="background:#f6f0e0;" | Programmer, Debian package maintainer
| style="background:#f6f0e0;" | France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Demon|Demon]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:deviexx|deviexx]]
| style="background:#f6f0e0;" | Content manager
| style="background:#f6f0e0;" | 
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| style="background:#f6f0e0;" | [[User:Sull|Sull]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | Canada
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>e74zdxg2rly0ro3mk7gsjpkrvhy7jml</sha1>
    </revision>
    <revision>
      <id>352</id>
      <parentid>351</parentid>
      <timestamp>2005-07-01T18:37:45Z</timestamp>
      <contributor>
        <username>Sull</username>
        <id>17</id>
      </contributor>
      <origin>352</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2625" sha1="l313jrc9fvtgd3p6pqy6jwo7p224as7" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:Bertram|Bertram]]
| style="background:#f6f0e0;" | Programmer, Debian package maintainer
| style="background:#f6f0e0;" | France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Demon|Demon]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:deviexx|deviexx]]
| style="background:#f6f0e0;" | Content manager
| style="background:#f6f0e0;" | 
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>l313jrc9fvtgd3p6pqy6jwo7p224as7</sha1>
    </revision>
    <revision>
      <id>380</id>
      <parentid>352</parentid>
      <timestamp>2005-07-01T20:11:16Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <comment>Sull please stay</comment>
      <origin>380</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2763" sha1="e74zdxg2rly0ro3mk7gsjpkrvhy7jml" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:Bertram|Bertram]]
| style="background:#f6f0e0;" | Programmer, Debian package maintainer
| style="background:#f6f0e0;" | France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Demon|Demon]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:deviexx|deviexx]]
| style="background:#f6f0e0;" | Content manager
| style="background:#f6f0e0;" | 
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Nym|nym]]
| Programmer
| Australia
|-
| style="background:#f6f0e0;" | [[User:Pajarico|Pajarico]]
| style="background:#f6f0e0;" | Concept artist, writer
| style="background:#f6f0e0;" | Spain
|-
| [[User:Rotonen|Rotonen]]
| Head of art, story and music
| Finland
|-
| style="background:#f6f0e0;" | [[User:Sull|Sull]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | Canada
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
| 
|-
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead; background:#f6f0e0;" | Poland
|}</text>
      <sha1>e74zdxg2rly0ro3mk7gsjpkrvhy7jml</sha1>
    </revision>
    <revision>
      <id>576</id>
      <parentid>380</parentid>
      <timestamp>2005-07-04T14:03:30Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added Neko-mon to the list</comment>
      <origin>576</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2849" sha1="0of476cex9irc4uncsubjbn1bqdqaom" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:Bertram|Bertram]]
| style="background:#f6f0e0;" | Programmer, Debian package maintainer
| style="background:#f6f0e0;" | France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Demon|Demon]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:deviexx|deviexx]]
| style="background:#f6f0e0;" | Content manager
| style="background:#f6f0e0;" | 
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| style="border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;" | Programmer
| style="border-bottom: 2px solid #efdead;" | Poland
|}</text>
      <sha1>0of476cex9irc4uncsubjbn1bqdqaom</sha1>
    </revision>
    <revision>
      <id>584</id>
      <parentid>576</parentid>
      <timestamp>2005-07-29T05:23:56Z</timestamp>
      <contributor>
        <username>CatfishMan</username>
        <id>35</id>
      </contributor>
      <origin>584</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3004" sha1="rhvwo9v9r1p5hi0fotkgkvagoujy39b" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Bear|Bear]]
| Scripter
|-
| style="background:#f6f0e0;" | [[User:Bertram|Bertram]]
| style="background:#f6f0e0;" | Programmer, Debian package maintainer
| style="background:#f6f0e0;" | France
|-
| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| Lead Programmer
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Clef|Clef]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Demon|Demon]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:deviexx|deviexx]]
| style="background:#f6f0e0;" | Content manager
| style="background:#f6f0e0;" | 
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| style="background:#f6f0e0;" | [[User:Catfish_Man|Catfish_Man]]
| style="background:#f6f0e0;" | Mac Port
| style="background:#f6f0e0;" | United States
|-
| style="border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;" | Programmer
| style="border-bottom: 2px solid #efdead;" | Poland
|}</text>
      <sha1>rhvwo9v9r1p5hi0fotkgkvagoujy39b</sha1>
    </revision>
    <revision>
      <id>585</id>
      <parentid>584</parentid>
      <timestamp>2005-07-30T11:58:02Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added Doener and Andrej and fixed background</comment>
      <origin>585</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3165" sha1="1i0z5aougw73ivos68cewau7wzgb55m" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Andrej|Andrej Sinicyn]]
| Programmer
|
|-
| style="background:#f6f0e0;" | [[User:Bear|Bear]]
| style="background:#f6f0e0;" | Scripter
| style="background:#f6f0e0;" |
|-
| [[User:Bertram|Bertram]]
| Programmer, Debian package maintainer
| France
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:Clef|Clef]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Doener|Doener]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Germany
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Catfish_Man|Catfish_Man]]
| Mac port
| United States
|-
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Poland
|}</text>
      <sha1>1i0z5aougw73ivos68cewau7wzgb55m</sha1>
    </revision>
    <revision>
      <id>586</id>
      <parentid>585</parentid>
      <timestamp>2005-07-30T12:05:59Z</timestamp>
      <contributor>
        <username>Gagaofdeath</username>
        <id>58</id>
      </contributor>
      <origin>586</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3173" sha1="dejg3o78huucmxl371kfct8ckzsf3ci" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Andrej|Andrej Sinicyn]]
| Programmer
| Germany
|-
| style="background:#f6f0e0;" | [[User:Bear|Bear]]
| style="background:#f6f0e0;" | Scripter
| style="background:#f6f0e0;" |
|-
| [[User:Bertram|Bertram]]
| Programmer, Debian package maintainer
| France
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:Clef|Clef]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Doener|Doener]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Germany
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Catfish_Man|Catfish_Man]]
| Mac port
| United States
|-
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Poland
|}</text>
      <sha1>dejg3o78huucmxl371kfct8ckzsf3ci</sha1>
    </revision>
    <revision>
      <id>637</id>
      <parentid>586</parentid>
      <timestamp>2005-07-30T12:22:22Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Fix user page link</comment>
      <origin>637</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3178" sha1="g28r6rotftyzwf7lzqu2wiy2lxr4s71" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Gagaofdeath|Andrej Sinicyn]]
| Programmer
| Germany
|-
| style="background:#f6f0e0;" | [[User:Bear|Bear]]
| style="background:#f6f0e0;" | Scripter
| style="background:#f6f0e0;" |
|-
| [[User:Bertram|Bertram]]
| Programmer, Debian package maintainer
| France
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:Clef|Clef]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Doener|Doener]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Germany
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Catfish_Man|Catfish_Man]]
| Mac port
| United States
|-
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Poland
|}</text>
      <sha1>g28r6rotftyzwf7lzqu2wiy2lxr4s71</sha1>
    </revision>
    <revision>
      <id>638</id>
      <parentid>637</parentid>
      <timestamp>2005-08-19T21:50:06Z</timestamp>
      <contributor>
        <username>Irukard</username>
        <id>32</id>
      </contributor>
      <comment>I added friend of mine who wanna become pixel artist in TMW</comment>
      <origin>638</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3226" sha1="6ncjsd548v93z05v9643jtvh8tmrbg7" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Gagaofdeath|Andrej Sinicyn]]
| Programmer
| Germany
|-
| style="background:#f6f0e0;" | [[User:Bear|Bear]]
| style="background:#f6f0e0;" | Scripter
| style="background:#f6f0e0;" |
|-
| [[User:Bertram|Bertram]]
| Programmer, Debian package maintainer
| France
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:Clef|Clef]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Doener|Doener]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Germany
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sora|Sora]]
| Pixel artist
| Poland
|-
| [[User:Sull|Sull]]
| Pixel artist
| Canada
|-
| style="background:#f6f0e0;" | [[User:Talaroc|Talaroc]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Catfish_Man|Catfish_Man]]
| Mac port
| United States
|-
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Programmer
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Poland
|}</text>
      <sha1>6ncjsd548v93z05v9643jtvh8tmrbg7</sha1>
    </revision>
    <revision>
      <id>2008</id>
      <parentid>638</parentid>
      <timestamp>2005-08-19T21:56:56Z</timestamp>
      <contributor>
        <username>Irukard</username>
        <id>32</id>
      </contributor>
      <minor/>
      <comment>fixed colors in developers chart.</comment>
      <origin>2008</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3260" sha1="et512w3n5cqj03azfurqsc3ixiz0jkz" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Gagaofdeath|Andrej Sinicyn]]
| Programmer
| Germany
|-
| style="background:#f6f0e0;" | [[User:Bear|Bear]]
| style="background:#f6f0e0;" | Scripter
| style="background:#f6f0e0;" |
|-
| [[User:Bertram|Bertram]]
| Programmer, Debian package maintainer
| France
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:Clef|Clef]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Doener|Doener]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Germany
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sora|Sora]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Sull|Sull]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | Canada
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|  
|-
| style="background:#f6f0e0;" | [[User:Catfish_Man|Catfish_Man]]
| style="background:#f6f0e0;" | Mac port
| style="background:#f6f0e0;" | United States
|-
| style="border-bottom: 2px solid #efdead;" | [[User:Usiu|Usiu]]
| style="border-bottom: 2px solid #efdead;" | Programmer
| style="border-bottom: 2px solid #efdead;" | Poland
|}</text>
      <sha1>et512w3n5cqj03azfurqsc3ixiz0jkz</sha1>
    </revision>
    <revision>
      <id>3348</id>
      <parentid>2008</parentid>
      <timestamp>2005-12-28T23:37:51Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added Platyna, our Slackware package maintainer</comment>
      <origin>3348</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3401" sha1="m0tgd8bxhcfwu8poib5fvy3ydtgy3c3" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Gagaofdeath|Andrej Sinicyn]]
| Programmer
| Germany
|-
| style="background:#f6f0e0;" | [[User:Bear|Bear]]
| style="background:#f6f0e0;" | Scripter
| style="background:#f6f0e0;" |
|-
| [[User:Bertram|Bertram]]
| Programmer, Debian package maintainer
| France
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:Clef|Clef]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Doener|Doener]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Germany
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sora|Sora]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Sull|Sull]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | Canada
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|  
|-
| style="background:#f6f0e0;" | [[User:Catfish_Man|Catfish_Man]]
| style="background:#f6f0e0;" | Mac port
| style="background:#f6f0e0;" | United States
|-
| [[User:Usiu|Usiu]]
| Programmer
| Poland
|-
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | [[User:Platyna|Zuzanna K. Filutowska]]
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Slackware package maintainer
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Poland
|}</text>
      <sha1>m0tgd8bxhcfwu8poib5fvy3ydtgy3c3</sha1>
    </revision>
    <revision>
      <id>3349</id>
      <parentid>3348</parentid>
      <timestamp>2005-12-28T23:40:54Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Ok nickname then</comment>
      <origin>3349</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3379" sha1="ge4npbr6uywv6hx6405ge9vcomv2aip" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Gagaofdeath|Andrej Sinicyn]]
| Programmer
| Germany
|-
| style="background:#f6f0e0;" | [[User:Bear|Bear]]
| style="background:#f6f0e0;" | Scripter
| style="background:#f6f0e0;" |
|-
| [[User:Bertram|Bertram]]
| Programmer, Debian package maintainer
| France
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:Clef|Clef]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Doener|Doener]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Germany
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sora|Sora]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Sull|Sull]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | Canada
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|  
|-
| style="background:#f6f0e0;" | [[User:Catfish_Man|Catfish_Man]]
| style="background:#f6f0e0;" | Mac port
| style="background:#f6f0e0;" | United States
|-
| [[User:Usiu|Usiu]]
| Programmer
| Poland
|-
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | [[User:Platyna]]
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Slackware package maintainer
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Poland
|}</text>
      <sha1>ge4npbr6uywv6hx6405ge9vcomv2aip</sha1>
    </revision>
    <revision>
      <id>3350</id>
      <parentid>3349</parentid>
      <timestamp>2005-12-28T23:41:13Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>But that didn't look nice</comment>
      <origin>3350</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3387" sha1="81dyaupimzsvysei2nk67dj82yofhcd" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
|-
| [[User:Gagaofdeath|Andrej Sinicyn]]
| Programmer
| Germany
|-
| style="background:#f6f0e0;" | [[User:Bear|Bear]]
| style="background:#f6f0e0;" | Scripter
| style="background:#f6f0e0;" |
|-
| [[User:Bertram|Bertram]]
| Programmer, Debian package maintainer
| France
|-
| style="background:#f6f0e0;" | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]
| style="background:#f6f0e0;" | Lead Programmer
| style="background:#f6f0e0;" | The Netherlands
|-
| [[User:Clef|Clef]]
| Pixel artist
| 
|-
| style="background:#f6f0e0;" | [[User:Demon|Demon]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:deviexx|deviexx]]
| Content manager
| 
|-
| style="background:#f6f0e0;" | [[User:Doener|Doener]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Germany
|-
| [[User:ElvenProgrammer|ElvenProgrammer]]
| Project leader, programmer
| Italy
|-
| style="background:#f6f0e0;" | [[User:Golgo|Golgo]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | 
|-
| [[User:Irukard|Irukard]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Javila|Javila]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Brazil
|-
| [[User:kindjal|kindjal]]
| Programmer
| France, currently Italy
|-
| style="background:#f6f0e0;" | [[User:Kyokai|Kyokai]]
| style="background:#f6f0e0;" | Game systems designer
| style="background:#f6f0e0;" | 
|-
| [[User:maci|maci]]
| User support
| Germany
|-
| style="background:#f6f0e0;" | [[User:Maester Pixel|Maester Pixel]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | USA
|-
| [[User:Magick|Magick]]
| Musician
| 
|-
| style="background:#f6f0e0;" | [[User:Mkael|Mkael]]
| style="background:#f6f0e0;" | Concept artist
| style="background:#f6f0e0;" | Finland
|-
| [[User:Modanung|Modanung]]
| Pixel artist
| The Netherlands
|-
| style="background:#f6f0e0;" | [[User:Mra|Mra]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | 
|-
| [[User:Neko-mon|Neko-mon]]
| Pixel artist
| Brazil
|-
| style="background:#f6f0e0;" | [[User:Nym|nym]]
| style="background:#f6f0e0;" | Programmer
| style="background:#f6f0e0;" | Australia
|-
| [[User:Pajarico|Pajarico]]
| Concept artist, writer
| Spain
|-
| style="background:#f6f0e0;" | [[User:Rotonen|Rotonen]]
| style="background:#f6f0e0;" | Head of art, story and music
| style="background:#f6f0e0;" | Finland
|-
| [[User:Sora|Sora]]
| Pixel artist
| Poland
|-
| style="background:#f6f0e0;" | [[User:Sull|Sull]]
| style="background:#f6f0e0;" | Pixel artist
| style="background:#f6f0e0;" | Canada
|-
| [[User:Talaroc|Talaroc]]
| Pixel artist
|  
|-
| style="background:#f6f0e0;" | [[User:Catfish_Man|Catfish_Man]]
| style="background:#f6f0e0;" | Mac port
| style="background:#f6f0e0;" | United States
|-
| [[User:Usiu|Usiu]]
| Programmer
| Poland
|-
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | [[User:Platyna|Platyna]]
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Slackware package maintainer
| style="border-bottom: 2px solid #efdead;background:#f6f0e0;" | Poland
|}</text>
      <sha1>81dyaupimzsvysei2nk67dj82yofhcd</sha1>
    </revision>
    <revision>
      <id>3365</id>
      <parentid>3350</parentid>
      <timestamp>2005-12-29T01:15:14Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Using templates for the rows</comment>
      <origin>3365</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2622" sha1="seum7vk5rodymo4fks64ewgcw1pxsfo" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | Germany}}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | }}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
|}</text>
      <sha1>seum7vk5rodymo4fks64ewgcw1pxsfo</sha1>
    </revision>
    <revision>
      <id>3366</id>
      <parentid>3365</parentid>
      <timestamp>2005-12-29T01:20:01Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>I don't know this, got filled in by accident</comment>
      <origin>3366</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2615" sha1="2x68hf7osghpd7u1wvj2wkkrhojiw4d" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | }}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
|}</text>
      <sha1>2x68hf7osghpd7u1wvj2wkkrhojiw4d</sha1>
    </revision>
    <revision>
      <id>3370</id>
      <parentid>3366</parentid>
      <timestamp>2005-12-29T13:35:33Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Mra is from Germany</comment>
      <origin>3370</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2622" sha1="15nv1mvhgud9q1q1wzjc7ml9yqwwuc0" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
|}</text>
      <sha1>15nv1mvhgud9q1q1wzjc7ml9yqwwuc0</sha1>
    </revision>
    <revision>
      <id>3469</id>
      <parentid>3370</parentid>
      <timestamp>2006-02-11T21:21:41Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>added myself to the developer list</comment>
      <origin>3469</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2710" sha1="ojdm3u9nh1siy83dgogktmk9g95ttst" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, programmer | Germany}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev2| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
|}</text>
      <sha1>ojdm3u9nh1siy83dgogktmk9g95ttst</sha1>
    </revision>
    <revision>
      <id>3470</id>
      <parentid>3469</parentid>
      <timestamp>2006-02-12T04:34:29Z</timestamp>
      <contributor>
        <username>Tenche</username>
        <id>39</id>
      </contributor>
      <origin>3470</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2798" sha1="jm91wf93818mg7n79i1sdyai7p3ekjk" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, programmer | Germany}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev2| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Tenche|Tenche]]                 | Graphic Designer, Pixel Artist | USA}}
|}</text>
      <sha1>jm91wf93818mg7n79i1sdyai7p3ekjk</sha1>
    </revision>
    <revision>
      <id>3472</id>
      <parentid>3470</parentid>
      <timestamp>2006-02-12T11:07:47Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <minor/>
      <comment>Corrected to alphabetical order</comment>
      <origin>3472</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2800" sha1="76rv0rwehqv7tgruc8h8esrtiv9sof0" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, programmer | Germany}}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tenche|Tenche]]                   | Graphic Designer, Pixel Artist | USA}}
{{dev2| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>76rv0rwehqv7tgruc8h8esrtiv9sof0</sha1>
    </revision>
    <revision>
      <id>3473</id>
      <parentid>3472</parentid>
      <timestamp>2006-02-12T17:26:53Z</timestamp>
      <contributor>
        <username>Hackgrid</username>
        <id>217</id>
      </contributor>
      <origin>3473</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2880" sha1="mf3x3z6xrdcv0we19c0y0m21nphscmq" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, programmer | Germany}}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| [[User:Tenche|Tenche]]                   | Graphic Designer, Pixel Artist | USA}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>mf3x3z6xrdcv0we19c0y0m21nphscmq</sha1>
    </revision>
    <revision>
      <id>3478</id>
      <parentid>3473</parentid>
      <timestamp>2006-02-12T19:04:51Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <minor/>
      <comment>Corrected the blabbering idiot's position. :)</comment>
      <origin>3478</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2880" sha1="00l7b9moiysj52maxl3w1vymnkkog7a" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, programmer | Germany}}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| [[User:Tenche|Tenche]]                   | Graphic Designer, Pixel Artist | USA}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>00l7b9moiysj52maxl3w1vymnkkog7a</sha1>
    </revision>
    <revision>
      <id>3482</id>
      <parentid>3478</parentid>
      <timestamp>2006-02-13T08:03:32Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <comment>As far as I know Tenche is not a developer</comment>
      <origin>3482</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2790" sha1="6kqlbpweb6qp4liwclxmakt03z05od6" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, programmer | Germany}}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>6kqlbpweb6qp4liwclxmakt03z05od6</sha1>
    </revision>
    <revision>
      <id>3634</id>
      <parentid>3482</parentid>
      <timestamp>2006-03-10T16:10:25Z</timestamp>
      <contributor>
        <username>Kinetic</username>
        <id>142</id>
      </contributor>
      <origin>3634</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2862" sha1="r8vc5epogxyeh9biqfmaveff457tu6z" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, programmer | Germany}}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>r8vc5epogxyeh9biqfmaveff457tu6z</sha1>
    </revision>
    <revision>
      <id>3792</id>
      <parentid>3634</parentid>
      <timestamp>2006-03-13T21:58:25Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <origin>3792</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2870" sha1="92kb8uywjhoqe47ha7em0bmz2i7iqeu" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist | The Netherlands}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>92kb8uywjhoqe47ha7em0bmz2i7iqeu</sha1>
    </revision>
    <revision>
      <id>3793</id>
      <parentid>3792</parentid>
      <timestamp>2006-03-13T22:34:49Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <minor/>
      <comment>I do more</comment>
      <origin>3793</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2886" sha1="hrsv8b6y8uxy2gq8qlz3m77t67tmlwv" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>hrsv8b6y8uxy2gq8qlz3m77t67tmlwv</sha1>
    </revision>
    <revision>
      <id>3807</id>
      <parentid>3793</parentid>
      <timestamp>2006-03-15T15:59:20Z</timestamp>
      <contributor>
        <username>Tuxtgz</username>
        <id>317</id>
      </contributor>
      <origin>3807</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2973" sha1="qd2tb9fir2bogrjo3qyghavtp7dwax8" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
|}</text>
      <sha1>qd2tb9fir2bogrjo3qyghavtp7dwax8</sha1>
    </revision>
    <revision>
      <id>3808</id>
      <parentid>3807</parentid>
      <timestamp>2006-03-15T16:36:25Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>List in lexical order</comment>
      <origin>3808</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2973" sha1="23x5ivcvbsbhgrohgkhoyv0kabd241o" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Concept artist, writer | Spain}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>23x5ivcvbsbhgrohgkhoyv0kabd241o</sha1>
    </revision>
    <revision>
      <id>4460</id>
      <parentid>3808</parentid>
      <timestamp>2006-07-23T12:00:11Z</timestamp>
      <contributor>
        <username>Pajarico</username>
        <id>5</id>
      </contributor>
      <comment>Sepparated in active and retired</comment>
      <origin>4460</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3294" sha1="hgtkersxr75hkzfegjek5jwr73z8nmn" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer|Germany}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>hgtkersxr75hkzfegjek5jwr73z8nmn</sha1>
    </revision>
    <revision>
      <id>4711</id>
      <parentid>4460</parentid>
      <timestamp>2006-08-20T13:06:43Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added Pauan to list of developers</comment>
      <origin>4711</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3369" sha1="bq49x4szleuifr0sugtx47xlrbgmu27" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer|Germany}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>bq49x4szleuifr0sugtx47xlrbgmu27</sha1>
    </revision>
    <revision>
      <id>4714</id>
      <parentid>4711</parentid>
      <timestamp>2006-08-20T15:43:51Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>ordered the developers list alphabetically</comment>
      <origin>4714</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3369" sha1="n1r2jh63ic9pcph6371h9bh7rm88trp" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer|Germany}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>n1r2jh63ic9pcph6371h9bh7rm88trp</sha1>
    </revision>
    <revision>
      <id>4715</id>
      <parentid>4714</parentid>
      <timestamp>2006-08-20T15:45:12Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>got confused because of matts wiki user name</comment>
      <origin>4715</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3369" sha1="bfs85adym58oimyox7bj2tovftqyq0c" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer|Germany}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>bfs85adym58oimyox7bj2tovftqyq0c</sha1>
    </revision>
    <revision>
      <id>4741</id>
      <parentid>4715</parentid>
      <timestamp>2006-08-26T21:16:19Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added silene the great programmer</comment>
      <origin>4741</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3442" sha1="iuzws1fmqw1g5ijo2dt3t1lysaomy7m" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:silene|silene]]                   | Programmer | France}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer|Germany}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>iuzws1fmqw1g5ijo2dt3t1lysaomy7m</sha1>
    </revision>
    <revision>
      <id>4742</id>
      <parentid>4741</parentid>
      <timestamp>2006-08-26T21:25:04Z</timestamp>
      <contributor>
        <username>Silene</username>
        <id>423</id>
      </contributor>
      <minor/>
      <comment>Going with my real name</comment>
      <origin>4742</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3447" sha1="7h3ns82t5gfso5cxs9xzlfxn2hrzs5w" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer|Germany}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="75px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="200px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>7h3ns82t5gfso5cxs9xzlfxn2hrzs5w</sha1>
    </revision>
    <revision>
      <id>4744</id>
      <parentid>4742</parentid>
      <timestamp>2006-08-26T21:43:16Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Might as well actually align the two tables then :-)</comment>
      <origin>4744</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3448" sha1="7dthfsxthklth5azj4sbbmjgz8cuawy" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer|Germany}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>7dthfsxthklth5azj4sbbmjgz8cuawy</sha1>
    </revision>
    <revision>
      <id>5111</id>
      <parentid>4744</parentid>
      <timestamp>2006-09-22T13:28:11Z</timestamp>
      <contributor>
        <username>VictorSan</username>
        <id>511</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>5111</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3522" sha1="5y1gdrz5aitiobwzj72j3e8u9chruck" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>5y1gdrz5aitiobwzj72j3e8u9chruck</sha1>
    </revision>
    <revision>
      <id>5594</id>
      <parentid>5111</parentid>
      <timestamp>2006-12-15T01:50:09Z</timestamp>
      <contributor>
        <username>Paintballnsk</username>
        <id>586</id>
      </contributor>
      <minor/>
      <comment>I would really like information on joining the programing and music team</comment>
      <origin>5594</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3608" sha1="arzppaqw85uc5lzas13amth3k8wvajd" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:paintballnsk|paintballnsk]]                       | Programmer | USA}}
{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>arzppaqw85uc5lzas13amth3k8wvajd</sha1>
    </revision>
    <revision>
      <id>5595</id>
      <parentid>5594</parentid>
      <timestamp>2006-12-15T18:20:28Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>Revert: When you want to join the team please read the "joining the project" article.</comment>
      <origin>5595</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3522" sha1="5y1gdrz5aitiobwzj72j3e8u9chruck" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>5y1gdrz5aitiobwzj72j3e8u9chruck</sha1>
    </revision>
    <revision>
      <id>5767</id>
      <parentid>5595</parentid>
      <timestamp>2007-01-02T22:00:30Z</timestamp>
      <contributor>
        <username>Sixpointnine</username>
        <id>590</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>5767</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3602" sha1="c454cgahbxhm55cbj69f40xv666kmqh" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Sixpointnine|Sixpointnine]]       | Pixel Artist | Unknown 0.o}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>c454cgahbxhm55cbj69f40xv666kmqh</sha1>
    </revision>
    <revision>
      <id>5784</id>
      <parentid>5767</parentid>
      <timestamp>2007-01-03T17:31:17Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Moved deviexx and Talaroc to retired</comment>
      <origin>5784</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3602" sha1="jw9i82kani166cu6o96v5p3o64otlj3" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Sixpointnine|Sixpointnine]]       | Pixel Artist | Unknown 0.o}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>jw9i82kani166cu6o96v5p3o64otlj3</sha1>
    </revision>
    <revision>
      <id>5795</id>
      <parentid>5784</parentid>
      <timestamp>2007-01-03T18:03:11Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Join the team first before you add yourself (talk to Elven or me if you're interested)</comment>
      <origin>5795</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3522" sha1="g3kpokzcga7hpkzvcj6j74d59spcibz" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
|}</text>
      <sha1>g3kpokzcga7hpkzvcj6j74d59spcibz</sha1>
    </revision>
    <revision>
      <id>6012</id>
      <parentid>5795</parentid>
      <timestamp>2007-02-07T21:03:04Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Moved Bear and nym to retired and added some people who were only mentioned on the About page</comment>
      <origin>6012</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4343" sha1="691tnd58g7bp6m8xob4w46nmh5yi7qr" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| kth5 (Shura)                             | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>691tnd58g7bp6m8xob4w46nmh5yi7qr</sha1>
    </revision>
    <revision>
      <id>6018</id>
      <parentid>6012</parentid>
      <timestamp>2007-02-08T04:44:57Z</timestamp>
      <contributor>
        <username>Pauan</username>
        <id>473</id>
      </contributor>
      <comment>Let's not forget Dabe too. :P</comment>
      <origin>6018</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4426" sha1="7fru20gle3qvomjycahdbr7thfqd571" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| kth5 (Shura)                             | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Usiu]]                       | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>7fru20gle3qvomjycahdbr7thfqd571</sha1>
    </revision>
    <revision>
      <id>6163</id>
      <parentid>6018</parentid>
      <timestamp>2007-03-01T10:25:22Z</timestamp>
      <contributor>
        <username>Usiu</username>
        <id>10</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>6163</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4426" sha1="e7sbf0c4rq5unxk4el1khe7hr9luq2u" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| kth5 (Shura)                             | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>e7sbf0c4rq5unxk4el1khe7hr9luq2u</sha1>
    </revision>
    <revision>
      <id>6164</id>
      <parentid>6163</parentid>
      <timestamp>2007-03-01T10:25:45Z</timestamp>
      <contributor>
        <username>Usiu</username>
        <id>10</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>6164</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4433" sha1="c79hylu7ogvr9hxhheqg5qijdmvw4tx" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| kth5 (Shura)                             | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>c79hylu7ogvr9hxhheqg5qijdmvw4tx</sha1>
    </revision>
    <revision>
      <id>6165</id>
      <parentid>6164</parentid>
      <timestamp>2007-03-01T13:39:02Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>added avaniel and trapdoor to developers list</comment>
      <origin>6165</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4566" sha1="akzx7dg5rmrtdwdwyu3awr7558ijoeu" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Avaniel|Avaniel]]                 | Programmer | }}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer |}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| kth5 (Shura)                             | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>akzx7dg5rmrtdwdwyu3awr7558ijoeu</sha1>
    </revision>
    <revision>
      <id>6166</id>
      <parentid>6165</parentid>
      <timestamp>2007-03-01T14:29:29Z</timestamp>
      <contributor>
        <username>Avaniel</username>
        <id>462</id>
      </contributor>
      <minor/>
      <comment>Modified the Avaniel entry</comment>
      <origin>6166</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4581" sha1="jy6bvhcen6gn1i17w9unyk572srsx4s" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer |}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| kth5 (Shura)                             | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>jy6bvhcen6gn1i17w9unyk572srsx4s</sha1>
    </revision>
    <revision>
      <id>6196</id>
      <parentid>6166</parentid>
      <timestamp>2007-03-04T07:17:35Z</timestamp>
      <contributor>
        <username>Pauan</username>
        <id>473</id>
      </contributor>
      <comment>Added in AxlTrozz and modified my profile slightly.</comment>
      <origin>6196</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4699" sha1="bn25j0vlvtcwcka7ylu68py2o9ogg2y" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer |}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| kth5 (Shura)                             | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>bn25j0vlvtcwcka7ylu68py2o9ogg2y</sha1>
    </revision>
    <revision>
      <id>6268</id>
      <parentid>6196</parentid>
      <timestamp>2007-03-07T17:19:54Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Filled in trapdoor's location</comment>
      <origin>6268</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4707" sha1="51s7v4dprbmsq250q2z1d9shr3dtr8c" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer, Debian package maintainer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| kth5 (Shura)                             | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>51s7v4dprbmsq250q2z1d9shr3dtr8c</sha1>
    </revision>
    <revision>
      <id>6285</id>
      <parentid>6268</parentid>
      <timestamp>2007-03-09T18:25:26Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added Patrick, our new Debian package maintainer</comment>
      <origin>6285</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4772" sha1="pa3ohjg2feohquif91r8bckx5h52jnf" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| kth5 (Shura)                             | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>pa3ohjg2feohquif91r8bckx5h52jnf</sha1>
    </revision>
    <revision>
      <id>6329</id>
      <parentid>6285</parentid>
      <timestamp>2007-03-21T11:45:30Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added real name /* Retired */</comment>
      <origin>6329</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4772" sha1="m5cjusxnymerl2txw7k69w0uq64yzl1" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>m5cjusxnymerl2txw7k69w0uq64yzl1</sha1>
    </revision>
    <revision>
      <id>6606</id>
      <parentid>6329</parentid>
      <timestamp>2007-05-25T00:25:44Z</timestamp>
      <contributor>
        <username>Uppgames</username>
        <id>724</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>6606</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4876" sha1="betoidn07i3iwv8jzqtxhd1ygxfv750" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel art,map creation and translations | Brazil}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>betoidn07i3iwv8jzqtxhd1ygxfv750</sha1>
    </revision>
    <revision>
      <id>6627</id>
      <parentid>6606</parentid>
      <timestamp>2007-05-25T12:20:21Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>restored alphabetic order</comment>
      <origin>6627</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4876" sha1="p1j4z3eivzjbrrjg120q2fqgyei4d7i" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel art,map creation and translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>p1j4z3eivzjbrrjg120q2fqgyei4d7i</sha1>
    </revision>
    <revision>
      <id>6628</id>
      <parentid>6627</parentid>
      <timestamp>2007-05-25T15:49:49Z</timestamp>
      <contributor>
        <username>Uppgames</username>
        <id>724</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>6628</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4872" sha1="b03jryan8oeuuoac1blfy6uzk7nz2t8" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel Art,Map Creation,Translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>b03jryan8oeuuoac1blfy6uzk7nz2t8</sha1>
    </revision>
    <revision>
      <id>6630</id>
      <parentid>6628</parentid>
      <timestamp>2007-05-27T00:36:20Z</timestamp>
      <contributor>
        <username>Yosuhara</username>
        <id>324</id>
      </contributor>
      <origin>6630</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4949" sha1="42v52kpszxkubczz33nkns4ndyd8cb2" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel Art,Map Creation,Translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>42v52kpszxkubczz33nkns4ndyd8cb2</sha1>
    </revision>
    <revision>
      <id>6645</id>
      <parentid>6630</parentid>
      <timestamp>2007-06-02T11:51:13Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Small adjustments</comment>
      <origin>6645</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4951" sha1="td0x1ylglam37uinm80te501djg9ucu" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>td0x1ylglam37uinm80te501djg9ucu</sha1>
    </revision>
    <revision>
      <id>7373</id>
      <parentid>6645</parentid>
      <timestamp>2007-08-21T09:43:31Z</timestamp>
      <contributor>
        <username>JoshLangley</username>
        <id>911</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>7373</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5034" sha1="e3o334nr13u752xfya3ordfbpz0hjmr" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>e3o334nr13u752xfya3ordfbpz0hjmr</sha1>
    </revision>
    <revision>
      <id>7374</id>
      <parentid>7373</parentid>
      <timestamp>2007-08-21T09:45:59Z</timestamp>
      <contributor>
        <username>JoshLangley</username>
        <id>911</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>7374</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4951" sha1="td0x1ylglam37uinm80te501djg9ucu" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>td0x1ylglam37uinm80te501djg9ucu</sha1>
    </revision>
    <revision>
      <id>7375</id>
      <parentid>7374</parentid>
      <timestamp>2007-08-21T09:46:41Z</timestamp>
      <contributor>
        <username>JoshLangley</username>
        <id>911</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>7375</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5034" sha1="amco7tw5t34lr0dh07hbsjov5yq53d7" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>amco7tw5t34lr0dh07hbsjov5yq53d7</sha1>
    </revision>
    <revision>
      <id>7378</id>
      <parentid>7375</parentid>
      <timestamp>2007-08-21T11:03:03Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Keeping it alphabetical was a good idea</comment>
      <origin>7378</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5034" sha1="8gu4fe0606f6a7na19mxbcr359rbamk" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>8gu4fe0606f6a7na19mxbcr359rbamk</sha1>
    </revision>
    <revision>
      <id>7572</id>
      <parentid>7378</parentid>
      <timestamp>2007-09-11T00:23:23Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>Josh Langley wrote on a bugtracker ticket: "I've lost motivation to work on this project for an undetermined amount of time, and I'm working on another project."</comment>
      <origin>7572</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5034" sha1="e3o334nr13u752xfya3ordfbpz0hjmr" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                   | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>e3o334nr13u752xfya3ordfbpz0hjmr</sha1>
    </revision>
    <revision>
      <id>7589</id>
      <parentid>7572</parentid>
      <timestamp>2007-09-17T06:51:03Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>7589</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5120" sha1="bzvy3j286fdqpzs975q9m7pz17tub2e" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Len|Len]]                         | Pixel artist, concept artist | USA}}
{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>bzvy3j286fdqpzs975q9m7pz17tub2e</sha1>
    </revision>
    <revision>
      <id>7590</id>
      <parentid>7589</parentid>
      <timestamp>2007-09-17T18:09:20Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>please keep the alphabetic order</comment>
      <origin>7590</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5120" sha1="cw7pn1ogm7nk3ekgmj9rb669skhvgl8" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|Len]]                         | Pixel artist, concept artist | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>cw7pn1ogm7nk3ekgmj9rb669skhvgl8</sha1>
    </revision>
    <revision>
      <id>7593</id>
      <parentid>7590</parentid>
      <timestamp>2007-09-20T16:50:44Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>7593</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5130" sha1="7rzvz5k0ksfj27a6yy1l0sc51locvz2" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>7rzvz5k0ksfj27a6yy1l0sc51locvz2</sha1>
    </revision>
    <revision>
      <id>8512</id>
      <parentid>7593</parentid>
      <timestamp>2008-01-18T00:29:01Z</timestamp>
      <contributor>
        <username>Rotonen</username>
        <id>16</id>
      </contributor>
      <minor/>
      <comment>Added in my full name.</comment>
      <origin>8512</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5130" sha1="bo8rhwsso8dcejeu7ryxd1or1hcq7u0" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Irukard]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>bo8rhwsso8dcejeu7ryxd1or1hcq7u0</sha1>
    </revision>
    <revision>
      <id>8520</id>
      <parentid>8512</parentid>
      <timestamp>2008-01-20T13:30:18Z</timestamp>
      <contributor>
        <username>Irukard</username>
        <id>32</id>
      </contributor>
      <minor/>
      <comment>Added my full name too :P</comment>
      <origin>8520</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5150" sha1="4ueq26om0z4okhsce3vni756wb5jt6n" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Crush]]                     | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>4ueq26om0z4okhsce3vni756wb5jt6n</sha1>
    </revision>
    <revision>
      <id>8521</id>
      <parentid>8520</parentid>
      <timestamp>2008-01-20T13:32:55Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>Following the recent real-name trend</comment>
      <origin>8521</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5150" sha1="hcau228ih3w77hucsfs39hu94dpqas9" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>hcau228ih3w77hucsfs39hu94dpqas9</sha1>
    </revision>
    <revision>
      <id>8816</id>
      <parentid>8521</parentid>
      <timestamp>2008-02-26T12:35:34Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>8816</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5158" sha1="71omsx3vmihkgg85ba7sbdrg2060oj2" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|Dabe]]                       | Story and Geography writer | }}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Webinterface-Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>71omsx3vmihkgg85ba7sbdrg2060oj2</sha1>
    </revision>
    <revision>
      <id>8825</id>
      <parentid>8816</parentid>
      <timestamp>2008-02-27T09:30:01Z</timestamp>
      <contributor>
        <username>Dabe</username>
        <id>333</id>
      </contributor>
      <minor/>
      <comment>added my full name and fixed Tuxtgz's title.</comment>
      <origin>8825</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5162" sha1="pgq8lbqngulnrxnee82uys1hkt1aqtj" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|ElvenProgrammer]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>pgq8lbqngulnrxnee82uys1hkt1aqtj</sha1>
    </revision>
    <revision>
      <id>8829</id>
      <parentid>8825</parentid>
      <timestamp>2008-02-27T11:49:09Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <comment>/* Active */ Filled in my full name</comment>
      <origin>8829</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5180" sha1="djxdcfwavfzqkviyo7p8katqzjvtydo" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | Pixel artist | USA}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>djxdcfwavfzqkviyo7p8katqzjvtydo</sha1>
    </revision>
    <revision>
      <id>8878</id>
      <parentid>8829</parentid>
      <timestamp>2008-03-09T18:48:59Z</timestamp>
      <contributor>
        <username>Axltrozz</username>
        <id>602</id>
      </contributor>
      <minor/>
      <comment>/* Active */ adding my real name</comment>
      <origin>8878</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5217" sha1="2y2aipk3kl75bb6bm1ohic9es4ijr6o" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>2y2aipk3kl75bb6bm1ohic9es4ijr6o</sha1>
    </revision>
    <revision>
      <id>8944</id>
      <parentid>8878</parentid>
      <timestamp>2008-04-01T05:56:12Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>8944</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5112" sha1="1ajs0cc03shj61n6x4913xkgi3cer31" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}

{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>1ajs0cc03shj61n6x4913xkgi3cer31</sha1>
    </revision>
    <revision>
      <id>8945</id>
      <parentid>8944</parentid>
      <timestamp>2008-04-01T05:56:34Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>8945</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5218" sha1="0a0yckyflj8tju9ud8h4dfe1j5vxhkn" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}

{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper | USA}}
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>0a0yckyflj8tju9ud8h4dfe1j5vxhkn</sha1>
    </revision>
    <revision>
      <id>8948</id>
      <parentid>8945</parentid>
      <timestamp>2008-04-02T03:33:25Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>8948</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5113" sha1="hvwt3xivc5bjuntgo586r9w6ccsgzw5" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}

{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location


{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>hvwt3xivc5bjuntgo586r9w6ccsgzw5</sha1>
    </revision>
    <revision>
      <id>8949</id>
      <parentid>8948</parentid>
      <timestamp>2008-04-02T03:35:11Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>8949</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5241" sha1="8d22cimf80ujyf9exd0rg6q57g71f53" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of art(maybe)| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location


{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
|}</text>
      <sha1>8d22cimf80ujyf9exd0rg6q57g71f53</sha1>
    </revision>
    <revision>
      <id>8999</id>
      <parentid>8949</parentid>
      <timestamp>2008-04-07T13:05:00Z</timestamp>
      <contributor>
        <username>Irukard</username>
        <id>32</id>
      </contributor>
      <minor/>
      <comment>retired.</comment>
      <origin>8999</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5241" sha1="5heatdlaw3jiu256qzhgh9e7sh5l1c5" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of art(maybe)| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location


{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>5heatdlaw3jiu256qzhgh9e7sh5l1c5</sha1>
    </revision>
    <revision>
      <id>9001</id>
      <parentid>8999</parentid>
      <timestamp>2008-04-07T14:05:44Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>restored colorisation.</comment>
      <origin>9001</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5241" sha1="tewfoo07fzcxpotik2irepwhp58k82o" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of art(maybe)| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location


{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>tewfoo07fzcxpotik2irepwhp58k82o</sha1>
    </revision>
    <revision>
      <id>9020</id>
      <parentid>9001</parentid>
      <timestamp>2008-04-08T13:58:28Z</timestamp>
      <contributor>
        <username>QOAL</username>
        <id>530</id>
      </contributor>
      <comment>Adding myself</comment>
      <origin>9020</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5332" sha1="bu7wr7656wu6ihutzed8yd3a4nm34mx" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of art(maybe)| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:QOAL|Quiche_on_a_leash]]               | Content implementation | England}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location


{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>bu7wr7656wu6ihutzed8yd3a4nm34mx</sha1>
    </revision>
    <revision>
      <id>9109</id>
      <parentid>9020</parentid>
      <timestamp>2008-04-14T12:21:34Z</timestamp>
      <contributor>
        <username>Peavey</username>
        <id>1131</id>
      </contributor>
      <comment>/* Active */ add myself as dev</comment>
      <origin>9109</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5400" sha1="ip454ijtbuagnkipfkl3kogxs0y5jfq" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of art(maybe)| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:peavey|peavey]]             | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:QOAL|Quiche_on_a_leash]]               | Content implementation | England}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location


{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>ip454ijtbuagnkipfkl3kogxs0y5jfq</sha1>
    </revision>
    <revision>
      <id>9110</id>
      <parentid>9109</parentid>
      <timestamp>2008-04-14T12:23:05Z</timestamp>
      <contributor>
        <username>Peavey</username>
        <id>1131</id>
      </contributor>
      <comment>/* Active */ add my name</comment>
      <origin>9110</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5406" sha1="2lxgpa4ibnyjhvafwf62a61k6cb4576" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of art(maybe)| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:QOAL|Quiche_on_a_leash]]               | Content implementation | England}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location


{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>2lxgpa4ibnyjhvafwf62a61k6cb4576</sha1>
    </revision>
    <revision>
      <id>9175</id>
      <parentid>9110</parentid>
      <timestamp>2008-04-19T23:26:09Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>9175</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5407" sha1="9uzupx1mc4samt06e31l2q25mrc7hza" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:QOAL|Quiche_on_a_leash]]               | Content implementation | England}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location


{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>9uzupx1mc4samt06e31l2q25mrc7hza</sha1>
    </revision>
    <revision>
      <id>9194</id>
      <parentid>9175</parentid>
      <timestamp>2008-04-22T07:48:35Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Fix whitespace</comment>
      <origin>9194</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5406" sha1="8uvj1ja7w4leg21efw7hzyiewl1lka6" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:QOAL|Quiche_on_a_leash]]               | Content implementation | England}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>8uvj1ja7w4leg21efw7hzyiewl1lka6</sha1>
    </revision>
    <revision>
      <id>9590</id>
      <parentid>9194</parentid>
      <timestamp>2008-06-07T21:37:34Z</timestamp>
      <contributor>
        <username>Zipon</username>
        <id>25</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>9590</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5476" sha1="r3bcxydo0p5r41bt9mp5mzqz69mrgbv" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:QOAL|Quiche_on_a_leash]]               | Content implementation | England}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev2| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>r3bcxydo0p5r41bt9mp5mzqz69mrgbv</sha1>
    </revision>
    <revision>
      <id>9592</id>
      <parentid>9590</parentid>
      <timestamp>2008-06-08T15:48:05Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <minor/>
      <comment>fixed the colors</comment>
      <origin>9592</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5476" sha1="bhnowmhl77yf8ae7qr8jtcys2tg58l5" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:QOAL|Quiche_on_a_leash]]               | Content implementation | England}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>bhnowmhl77yf8ae7qr8jtcys2tg58l5</sha1>
    </revision>
    <revision>
      <id>9973</id>
      <parentid>9592</parentid>
      <timestamp>2008-08-25T17:40:04Z</timestamp>
      <contributor>
        <username>QOAL</username>
        <id>530</id>
      </contributor>
      <origin>9973</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5385" sha1="cqse7xtcq5ewybf7r8047ngy93fyvrm" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev2| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>cqse7xtcq5ewybf7r8047ngy93fyvrm</sha1>
    </revision>
    <revision>
      <id>10052</id>
      <parentid>9973</parentid>
      <timestamp>2008-09-03T14:15:15Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>add myself</comment>
      <origin>10052</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5489" sha1="q6zjm8tle0ywrttkf8mywg9n40mg1kh" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>q6zjm8tle0ywrttkf8mywg9n40mg1kh</sha1>
    </revision>
    <revision>
      <id>10080</id>
      <parentid>10052</parentid>
      <timestamp>2008-09-08T18:54:44Z</timestamp>
      <contributor>
        <username>Vink</username>
        <id>1127</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>10080</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5562" sha1="40j1e8sydibjs0fs552jf7c9dtmqq86" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager, mapper, minor programming | USA}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Vink|Lena Andersson (Vink)]] | Content Manager | Sweden}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>40j1e8sydibjs0fs552jf7c9dtmqq86</sha1>
    </revision>
    <revision>
      <id>10083</id>
      <parentid>10080</parentid>
      <timestamp>2008-09-10T17:59:31Z</timestamp>
      <contributor>
        <username>Vink</username>
        <id>1127</id>
      </contributor>
      <minor/>
      <comment>/* Active */</comment>
      <origin>10083</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5584" sha1="is4oulj10whpvpslbf127f5l0qsr4vj" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager, mapper, minor programming | USA}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Vink|Lena Andersson (Vink)]] | Part of Content Management Task Force | Sweden}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>is4oulj10whpvpslbf127f5l0qsr4vj</sha1>
    </revision>
    <revision>
      <id>10084</id>
      <parentid>10083</parentid>
      <timestamp>2008-09-10T18:03:43Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* Active */</comment>
      <origin>10084</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5602" sha1="npc1t18rf804fysxxdp6lf144r750h4" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev1| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev2| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Vink|Lena Andersson (Vink)]] | Part of Content Management Task Force | Sweden}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}</text>
      <sha1>npc1t18rf804fysxxdp6lf144r750h4</sha1>
    </revision>
    <revision>
      <id>10213</id>
      <parentid>10084</parentid>
      <timestamp>2008-09-20T08:33:27Z</timestamp>
      <contributor>
        <username>Kr0n05931</username>
        <id>1273</id>
      </contributor>
      <comment>Moved QOAL and Axltrozz to the retired section</comment>
      <origin>10213</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5706" sha1="61j5iao3entqnqjony08xt5a04ws8wd" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:Vink|Lena Andersson (Vink)]] | Part of Content Management Task Force | Sweden}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev2| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev1| [http://forums.themanaworld.org/memberlist.php?mode=viewprofile&amp;u=1823 Quiche_On_A_leash] | |}}
|}</text>
      <sha1>61j5iao3entqnqjony08xt5a04ws8wd</sha1>
    </revision>
    <revision>
      <id>10214</id>
      <parentid>10213</parentid>
      <timestamp>2008-09-20T08:36:57Z</timestamp>
      <contributor>
        <username>Kr0n05931</username>
        <id>1273</id>
      </contributor>
      <comment>/* Retired */  --fixed broken table</comment>
      <origin>10214</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5653" sha1="fd0hhx4tk5fb58bo4jole2sxtbnb0fx" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:Vink|Lena Andersson (Vink)]] | Part of Content Management Task Force | Sweden}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev2| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev1| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>fd0hhx4tk5fb58bo4jole2sxtbnb0fx</sha1>
    </revision>
    <revision>
      <id>10310</id>
      <parentid>10214</parentid>
      <timestamp>2008-10-09T04:13:45Z</timestamp>
      <contributor>
        <username>Vink</username>
        <id>1127</id>
      </contributor>
      <minor/>
      <comment>/* Active */</comment>
      <origin>10310</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5558" sha1="p04spyuzi8rpltglxclfuroihsod2xq" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev1| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>p04spyuzi8rpltglxclfuroihsod2xq</sha1>
    </revision>
    <revision>
      <id>10398</id>
      <parentid>10310</parentid>
      <timestamp>2008-10-20T17:14:07Z</timestamp>
      <contributor>
        <username>Irukard</username>
        <id>32</id>
      </contributor>
      <comment>Am I back?</comment>
      <origin>10398</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5558" sha1="5eq9mbxm3v6r4hnxi94pnf6pte1a3ko" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
{{dev2| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>5eq9mbxm3v6r4hnxi94pnf6pte1a3ko</sha1>
    </revision>
    <revision>
      <id>10529</id>
      <parentid>10398</parentid>
      <timestamp>2008-10-31T23:49:43Z</timestamp>
      <contributor>
        <username>Kage</username>
        <id>1313</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>10529</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5628" sha1="odwiyybwr2ukg5abp5i2s13tf1j8i3p" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
{{dev2| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]              | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>odwiyybwr2ukg5abp5i2s13tf1j8i3p</sha1>
    </revision>
    <revision>
      <id>10554</id>
      <parentid>10529</parentid>
      <timestamp>2008-11-04T20:58:12Z</timestamp>
      <contributor>
        <username>Gekoudi</username>
        <id>894</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>10554</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5703" sha1="5w22iavabr6vpfkikrwpbvuc50n7ca4" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
{{dev2| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Telospanton                              | Fan, player of TMW | Greece }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>5w22iavabr6vpfkikrwpbvuc50n7ca4</sha1>
    </revision>
    <revision>
      <id>10555</id>
      <parentid>10554</parentid>
      <timestamp>2008-11-04T21:06:14Z</timestamp>
      <contributor>
        <username>Fate</username>
        <id>1137</id>
      </contributor>
      <comment>Added myself</comment>
      <origin>10555</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5806" sha1="n09dbr00u0mqp3pofcdopm6w6849h2q" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
{{dev2| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Telospanton                              | Fan, player of TMW | Greece }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>n09dbr00u0mqp3pofcdopm6w6849h2q</sha1>
    </revision>
    <revision>
      <id>10559</id>
      <parentid>10555</parentid>
      <timestamp>2008-11-04T21:14:40Z</timestamp>
      <contributor>
        <username>Gekoudi</username>
        <id>894</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>10559</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5810" sha1="brjsckr2bfdwx7e2rrhtms8yydwdufg" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
{{dev2| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| [[Telospanton]]                              | Fan, player of TMW | Greece }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>brjsckr2bfdwx7e2rrhtms8yydwdufg</sha1>
    </revision>
    <revision>
      <id>10560</id>
      <parentid>10559</parentid>
      <timestamp>2008-11-04T21:18:29Z</timestamp>
      <contributor>
        <username>Gekoudi</username>
        <id>894</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>10560</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5724" sha1="plsxeuaxk1ruwuyx0nl373ywczp7y9z" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
{{dev2| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>plsxeuaxk1ruwuyx0nl373ywczp7y9z</sha1>
    </revision>
    <revision>
      <id>10561</id>
      <parentid>10560</parentid>
      <timestamp>2008-11-04T21:20:04Z</timestamp>
      <contributor>
        <username>Gekoudi</username>
        <id>894</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>10561</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5806" sha1="q0l5xfd3h08lk7g2mm9jbnvsljmrgex" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[Telospanton]]                          | Fan, player of TMW | Greece }}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev2| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>q0l5xfd3h08lk7g2mm9jbnvsljmrgex</sha1>
    </revision>
    <revision>
      <id>10565</id>
      <parentid>10561</parentid>
      <timestamp>2008-11-04T22:11:35Z</timestamp>
      <contributor>
        <username>Crush2</username>
        <id>1261</id>
      </contributor>
      <comment>Revert: This is a list of developers who do something for TMW, not for players.</comment>
      <origin>10565</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5724" sha1="plsxeuaxk1ruwuyx0nl373ywczp7y9z" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
{{dev2| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>plsxeuaxk1ruwuyx0nl373ywczp7y9z</sha1>
    </revision>
    <revision>
      <id>10848</id>
      <parentid>10565</parentid>
      <timestamp>2008-11-30T11:20:18Z</timestamp>
      <contributor>
        <username>Exceptionfault</username>
        <id>1227</id>
      </contributor>
      <minor/>
      <comment>/* Active */ added myself</comment>
      <origin>10848</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5812" sha1="f98altpoviey9qls4fvkfjfsp4rlajz" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
{{dev2| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
{{dev2| Quiche_On_A_leash | Content Management |}}
|}</text>
      <sha1>f98altpoviey9qls4fvkfjfsp4rlajz</sha1>
    </revision>
    <revision>
      <id>10868</id>
      <parentid>10848</parentid>
      <timestamp>2008-12-01T21:23:33Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Updated the list some</comment>
      <origin>10868</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5835" sha1="1ux2sur2kkqt6f7etjvfxyfldb0n3c5" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>1ux2sur2kkqt6f7etjvfxyfldb0n3c5</sha1>
    </revision>
    <revision>
      <id>11113</id>
      <parentid>10868</parentid>
      <timestamp>2008-12-20T04:35:13Z</timestamp>
      <contributor>
        <username>CnachIract</username>
        <id>1456</id>
      </contributor>
      <comment>dronout</comment>
      <origin>11113</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5856" sha1="mcgsunf2so6tgkvvvrvvcquustcs6dd" xml:space="preserve">relercoo
== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃƒÂ¸rn|BjÃƒÂ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃƒÂ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>mcgsunf2so6tgkvvvrvvcquustcs6dd</sha1>
    </revision>
    <revision>
      <id>11149</id>
      <parentid>11113</parentid>
      <timestamp>2008-12-20T20:53:36Z</timestamp>
      <contributor>
        <username>Crush2</username>
        <id>1261</id>
      </contributor>
      <comment>revert: spambot</comment>
      <origin>11149</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5835" sha1="1ux2sur2kkqt6f7etjvfxyfldb0n3c5" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev1| [[User:Len|L Pabin (len)]]                         | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>1ux2sur2kkqt6f7etjvfxyfldb0n3c5</sha1>
    </revision>
    <revision>
      <id>11179</id>
      <parentid>11149</parentid>
      <timestamp>2008-12-24T23:25:24Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>11179</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5705" sha1="osyrosfh1stz5m0gck6kg66iugjzv1k" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>osyrosfh1stz5m0gck6kg66iugjzv1k</sha1>
    </revision>
    <revision>
      <id>11180</id>
      <parentid>11179</parentid>
      <timestamp>2008-12-24T23:26:00Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>11180</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5826" sha1="grezu9pqp2a1azm9kaafn03ar62fahk" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location


{{dev1| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>grezu9pqp2a1azm9kaafn03ar62fahk</sha1>
    </revision>
    <revision>
      <id>11181</id>
      <parentid>11180</parentid>
      <timestamp>2008-12-24T23:26:39Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>11181</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5827" sha1="j1d016ehdz29d8fqpwp2xluzzeruf0q" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location



{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}
{{dev2| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}</text>
      <sha1>j1d016ehdz29d8fqpwp2xluzzeruf0q</sha1>
    </revision>
    <revision>
      <id>11182</id>
      <parentid>11181</parentid>
      <timestamp>2008-12-24T23:28:36Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>11182</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5827" sha1="iweproleuvu04buwokn8oa8oa1w5tuz" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location



{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>iweproleuvu04buwokn8oa8oa1w5tuz</sha1>
    </revision>
    <revision>
      <id>11183</id>
      <parentid>11182</parentid>
      <timestamp>2008-12-24T23:59:21Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>11183</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5707" sha1="8tx0v3hd83ctm7hnv2a6gkjh5g85i2x" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location



{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>8tx0v3hd83ctm7hnv2a6gkjh5g85i2x</sha1>
    </revision>
    <revision>
      <id>11184</id>
      <parentid>11183</parentid>
      <timestamp>2008-12-25T00:00:33Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>11184</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5827" sha1="dt3qwt0yrfuzk0e1kbupbmurogzgr24" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location



{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>dt3qwt0yrfuzk0e1kbupbmurogzgr24</sha1>
    </revision>
    <revision>
      <id>11195</id>
      <parentid>11184</parentid>
      <timestamp>2008-12-28T09:48:53Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Active */</comment>
      <origin>11195</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5707" sha1="8tx0v3hd83ctm7hnv2a6gkjh5g85i2x" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location



{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>8tx0v3hd83ctm7hnv2a6gkjh5g85i2x</sha1>
    </revision>
    <revision>
      <id>11196</id>
      <parentid>11195</parentid>
      <timestamp>2008-12-28T09:49:25Z</timestamp>
      <contributor>
        <username>Len</username>
        <id>640</id>
      </contributor>
      <comment>/* Retired */</comment>
      <origin>11196</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5827" sha1="iweproleuvu04buwokn8oa8oa1w5tuz" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location



{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>iweproleuvu04buwokn8oa8oa1w5tuz</sha1>
    </revision>
    <revision>
      <id>11383</id>
      <parentid>11196</parentid>
      <timestamp>2009-01-08T16:10:18Z</timestamp>
      <contributor>
        <username>CnachIract</username>
        <id>1456</id>
      </contributor>
      <comment>http://tacataca.strefa.pl/comment-1663.htm</comment>
      <origin>11383</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6212" sha1="age0o3213spy4kltbls63on11ssd2kq" xml:space="preserve">[http://tacataca.strefa.pl/comment-1663.htm kal ho na ho full movie] [http://fispruil.qsh.eu/news388.html legend of dragoon video game] [http://relquaca.is-the-boss.com/20081228-advanced-office.html advanced office password recovery 3.02 cracks] [http://zelfibu.strefa.pl/zelhen-1284.html pamela anderson tommy lee video clip] [http://cnavieltz.strefa.pl/sitemap.htm url] 
== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃƒÂ¸rn|BjÃƒÂ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃƒÂ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location



{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>age0o3213spy4kltbls63on11ssd2kq</sha1>
    </revision>
    <revision>
      <id>11444</id>
      <parentid>11383</parentid>
      <timestamp>2009-01-08T16:39:42Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>Undo revision 11383 by [[Special:Contributions/CnachIract|CnachIract]] ([[User talk:CnachIract|Talk]])</comment>
      <origin>11444</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5827" sha1="iweproleuvu04buwokn8oa8oa1w5tuz" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location



{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>iweproleuvu04buwokn8oa8oa1w5tuz</sha1>
    </revision>
    <revision>
      <id>11456</id>
      <parentid>11444</parentid>
      <timestamp>2009-01-09T10:40:03Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>Fixed header size</comment>
      <origin>11456</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5825" sha1="6wph7cm7o4ynsqluoi1ty7vq75qz00k" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Fate|Fate]]                       | Programmer (client, eAthena), Pixel artist | USA }}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>6wph7cm7o4ynsqluoi1ty7vq75qz00k</sha1>
    </revision>
    <revision>
      <id>11468</id>
      <parentid>11456</parentid>
      <timestamp>2009-01-12T15:09:38Z</timestamp>
      <contributor>
        <username>Fate</username>
        <id>1137</id>
      </contributor>
      <minor/>
      <comment>Removed myself from the list of active developers</comment>
      <origin>11468</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5722" sha1="5igr2adu9uh7u3s4kfndwg6crmsv0y5" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev1| Gnulia                                   | Concept artist | }}
{{dev2| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev1| Igor Morgado (imorgado)                  | Tester | }}
{{dev2| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev1| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev2| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev1| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev2| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev1| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev2| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev1| [[User:Magick|Magick]]                   | Musician | }}
{{dev2| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev1| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev2| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev1| Neorice                                  | Pixel artist | }}
{{dev2| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev1| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev2| Romulo Fernandes (razor85)               | Artist | }}
{{dev1| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev2| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev1| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev2| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev1| Ti Sing Hao                              | Musician | }}
{{dev2| Ultramichy                               | Hosting | }}
{{dev1| Vlady                                    | Artist | }}
{{dev2| zenogais (bitshift2002)                  | Programmer | }}
{{dev1| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev2| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>5igr2adu9uh7u3s4kfndwg6crmsv0y5</sha1>
    </revision>
    <revision>
      <id>11469</id>
      <parentid>11468</parentid>
      <timestamp>2009-01-12T15:11:18Z</timestamp>
      <contributor>
        <username>Fate</username>
        <id>1137</id>
      </contributor>
      <minor/>
      <comment>Added myself to the list of retired developers</comment>
      <origin>11469</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5808" sha1="ebeg14h1ntjl8s1vt2roqyo1o7x80s6" xml:space="preserve">== Active ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}

== Retired ==
{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Gagaofdeath|Andrej Sinicyn]]      | Programmer | Germany}}
{{dev2| [[User:Bear|Bear]]                       | Scripter | USA}}
{{dev1| [[User:Catfish_Man|Catfish_Man]]         | Mac port | USA}}
{{dev2| Chetic                                   | Mapper | }}
{{dev1| [[User:Clef|Clef]]                       | Pixel artist | }}
{{dev2| [[User:Demon|Demon]]                     | Pixel artist | }}
{{dev1| [[User:deviexx|deviexx]]                 | Content manager | }}
{{dev2| Fate                                     | Content and eAthena developer | }}
{{dev1| [[User:Golgo|Golgo]]                     | Pixel artist | }}
{{dev2| Gnulia                                   | Concept artist | }}
{{dev1| [[User:Silene|Guillaume Melquiond (Silene)]] | Programmer | France}}
{{dev2| Igor Morgado (imorgado)                  | Tester | }}
{{dev1| [[User:Javila|Javila]]                   | Programmer | Brazil}}
{{dev2| [[User:JoshLangley|JoshLangley]]         | Client Programmer | Australia}}
{{dev1| [[User:kindjal|kindjal]]                 | Programmer | France, currently Italy}}
{{dev2| [[User:Kinetic|Kinetic]]                 | Pixel artist | USA}}
{{dev1| Alexander Baldeck (kth5/Shura)           | Programmer | }}
{{dev2| [[User:Kyokai|Kyokai]]                   | Game systems designer | }}
{{dev1| [[User:Maester Pixel|Maester Pixel]]     | Pixel artist | USA}}
{{dev2| [[User:Magick|Magick]]                   | Musician | }}
{{dev1| [[User:Mkael|Mkael]]                     | Concept artist | Finland}}
{{dev2| [[User:Mra|Mra]]                         | Programmer | Germany}}
{{dev1| [[User:Neko-mon|Neko-mon]]               | Pixel artist | Brazil}}
{{dev2| Neorice                                  | Pixel artist | }}
{{dev1| [[User:Nym|nym]]                         | Programmer | Australia}}
{{dev2| Rodney Dawes (dobey)                     | Packager (install process) | }}
{{dev1| Romulo Fernandes (razor85)               | Artist | }}
{{dev2| Simon Edwardsson (simonedw/simedw)       | Packager (Mac) | }}
{{dev1| [[User:Sora|Sora]]                       | Pixel artist | Poland}}
{{dev2| [[User:Sull|Sull]]                       | Pixel artist and hosting | Canada}}
{{dev1| [[User:Talaroc|Talaroc]]                 | Pixel artist | }}
{{dev2| Ti Sing Hao                              | Musician | }}
{{dev1| Ultramichy                               | Hosting | }}
{{dev2| Vlady                                    | Artist | }}
{{dev1| zenogais (bitshift2002)                  | Programmer | }}
{{dev2| [[User:Len|L Pabin (len)]]               | Pixel artist, concept artist, mapper, and Head of Pixellation| USA}}
{{dev1| [[User:Axltrozz|Alex Argumedo (Axltrozz)]]               | Pixel artist | USA, born in El Salvador}}
|}</text>
      <sha1>ebeg14h1ntjl8s1vt2roqyo1o7x80s6</sha1>
    </revision>
    <revision>
      <id>11718</id>
      <parentid>11469</parentid>
      <timestamp>2009-02-21T02:06:04Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <comment>I’m not sure which ones are considered to be main developers, so I’ll leave that for someone else; note that *everyone* is mentioned in [[Contributors]]</comment>
      <origin>11718</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2795" sha1="3qcs6mkov1mlzalhi5kmkc830daz4c8" xml:space="preserve">The current main developers. See also the page listing all [[contributors]].

{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| Quiche_On_A_leash                        | Content Management |}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}</text>
      <sha1>3qcs6mkov1mlzalhi5kmkc830daz4c8</sha1>
    </revision>
    <revision>
      <id>11839</id>
      <parentid>11718</parentid>
      <timestamp>2009-03-15T21:14:18Z</timestamp>
      <contributor>
        <username>QOAL</username>
        <id>530</id>
      </contributor>
      <comment>Tad more info for myself</comment>
      <origin>11839</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2808" sha1="ldwqw96s9y6akrzbkg3sj1cvxncfz38" xml:space="preserve">The current main developers. See also the page listing all [[contributors]].

{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:QOAL|Scott Ellis (Quiche_on_a_leash)]] | Content Management | England}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}</text>
      <sha1>ldwqw96s9y6akrzbkg3sj1cvxncfz38</sha1>
    </revision>
    <revision>
      <id>12096</id>
      <parentid>11839</parentid>
      <timestamp>2009-05-12T19:41:38Z</timestamp>
      <contributor>
        <username>Blue112</username>
        <id>1569</id>
      </contributor>
      <comment>Added myself to the developers list.</comment>
      <origin>12096</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2886" sha1="bsc05t95zsn6m7greipn1tt54uo4r8h" xml:space="preserve">The current main developers. See also the page listing all [[contributors]].

{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Blue112|Blue Sans Douze (Blue112)]]| Programmer | Luxembourg}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev2| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev1| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev2| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:QOAL|Scott Ellis (Quiche_on_a_leash)]] | Content Management | England}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}</text>
      <sha1>bsc05t95zsn6m7greipn1tt54uo4r8h</sha1>
    </revision>
    <revision>
      <id>12097</id>
      <parentid>12096</parentid>
      <timestamp>2009-05-12T20:59:47Z</timestamp>
      <contributor>
        <username>Crush2</username>
        <id>1261</id>
      </contributor>
      <comment>fixed colors</comment>
      <origin>12097</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2886" sha1="dbv3g90y6b5eqoayg0el9jq53q45x7v" xml:space="preserve">The current main developers. See also the page listing all [[contributors]].

{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Blue112|Blue Sans Douze (Blue112)]]| Programmer | Luxembourg}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev1| [[User:maci|maci]]                       | User support | Germany}}
{{dev2| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev1| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev2| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev1| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev2| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev1| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev2| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev1| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev2| [[User:QOAL|Scott Ellis (Quiche_on_a_leash)]] | Content Management | England}}
{{dev1| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev2| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev1| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev2| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev1| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev2| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev1| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev2| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}</text>
      <sha1>dbv3g90y6b5eqoayg0el9jq53q45x7v</sha1>
    </revision>
    <revision>
      <id>12965</id>
      <parentid>12097</parentid>
      <timestamp>2009-08-12T08:54:39Z</timestamp>
      <contributor>
        <username>Freeyorp</username>
        <id>1501</id>
      </contributor>
      <comment>Added self</comment>
      <origin>12965</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2972" sha1="hwyx3a5ius7s8k8fprk4jrkyewi6e82" xml:space="preserve">The current main developers. See also the page listing all [[contributors]].

{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Blue112|Blue Sans Douze (Blue112)]]| Programmer | Luxembourg}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Freeyorp|Freeyorp]]               | Programmer, minor pixel art | NZ}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content Manager Task Force member, mapper, minor programming | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:QOAL|Scott Ellis (Quiche_on_a_leash)]] | Content Management | England}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}</text>
      <sha1>hwyx3a5ius7s8k8fprk4jrkyewi6e82</sha1>
    </revision>
    <revision>
      <id>12967</id>
      <parentid>12965</parentid>
      <timestamp>2009-08-12T15:18:45Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>adjust my entry</comment>
      <origin>12967</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2948" sha1="kd2ktioippqlq2zc7351ye0bv2les5x" xml:space="preserve">The current main developers. See also the page listing all [[contributors]].

{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Blue112|Blue Sans Douze (Blue112)]]| Programmer | Luxembourg}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Freeyorp|Freeyorp]]               | Programmer, minor pixel art | NZ}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content manager, programming, mapper | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:QOAL|Scott Ellis (Quiche_on_a_leash)]] | Content Management | England}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}</text>
      <sha1>kd2ktioippqlq2zc7351ye0bv2les5x</sha1>
    </revision>
    <revision>
      <id>14697</id>
      <parentid>12967</parentid>
      <timestamp>2010-01-16T15:32:59Z</timestamp>
      <contributor>
        <username>Guy111</username>
        <id>1778</id>
      </contributor>
      <origin>14697</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3035" sha1="1r5as6zaoeq7z9gi3bqrcu9wptld6gl" xml:space="preserve">The current main developers. See also the page listing all [[contributors]].

{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev2| [[User:Booth|Booth]]                     | Ideas for new ways to abuse | USA}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Blue112|Blue Sans Douze (Blue112)]]| Programmer | Luxembourg}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Freeyorp|Freeyorp]]               | Programmer, minor pixel art | NZ}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content manager, programming, mapper | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:QOAL|Scott Ellis (Quiche_on_a_leash)]] | Content Management | England}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}</text>
      <sha1>1r5as6zaoeq7z9gi3bqrcu9wptld6gl</sha1>
    </revision>
    <revision>
      <id>14703</id>
      <parentid>14697</parentid>
      <timestamp>2010-01-16T15:56:55Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>Undo revision 14697 by [[Special:Contributions/Guy111|Guy111]] ([[User talk:Guy111|Talk]]) revert: vandalism</comment>
      <origin>14703</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2948" sha1="kd2ktioippqlq2zc7351ye0bv2les5x" xml:space="preserve">The current main developers. See also the page listing all [[contributors]].

{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Blue112|Blue Sans Douze (Blue112)]]| Programmer | Luxembourg}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Freeyorp|Freeyorp]]               | Programmer, minor pixel art | NZ}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content manager, programming, mapper | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:QOAL|Scott Ellis (Quiche_on_a_leash)]] | Content Management | England}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}</text>
      <sha1>kd2ktioippqlq2zc7351ye0bv2les5x</sha1>
    </revision>
    <revision>
      <id>16141</id>
      <parentid>14703</parentid>
      <timestamp>2010-11-22T04:10:17Z</timestamp>
      <contributor>
        <username>Hoogli</username>
        <id>1124</id>
      </contributor>
      <origin>16141</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2971" sha1="9273mpefb0yocmythkihd098zj89z1u" xml:space="preserve">The current main developers. See also the page listing all [[contributors]].

{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev2| [[User:Exceptionfault|Andreas Habel (Exceptionfault)]] | Programmer | Germany}}
{{dev1| [[User:Av3nger|Av3nger]]                 | Pixel art, map creation, translations | Brazil}}
{{dev2| [[User:Bertram|Bertram]]                 | Programmer | France}}
{{dev1| [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]           | Lead Programmer | The Netherlands}}
{{dev2| [[User:Blue112|Blue Sans Douze (Blue112)]]| Programmer | Luxembourg}}
{{dev1| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev2| [[User:Crush|Philipp Sehmisch (Crush)]]  | Pixel artist, mapper, programmer | Germany}}
{{dev1| [[User:Dabe|David Del Re (Dabe)]]        | Story and Geography writer | USA}}
{{dev2| [[User:Doener|Doener]]                   | Programmer | Germany}}
{{dev1| [[User:ElvenProgrammer|Eugenio Favalli (ElvenProgrammer)]] | Project leader, programmer | Italy}}
{{dev2| [[User:Freeyorp|Freeyorp]]               | Programmer, minor pixel art | NZ}}
{{dev1| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Content manager, programming, mapper | USA}}
{{dev2| [[User:maci|maci]]                       | User support | Germany}}
{{dev1| [[User:hackgrid|Matt]]                   | Blabbering idiot | Germany}}
{{dev2| [[User:Modanung|Modanung]]               | Pixel artist, concept artist | The Netherlands}}
{{dev1| [[User:Pajarico|Pajarico]]               | Art, writer | Spain}}
{{dev2| [[User:the-me|Patrick MatthÃ¤i]]          | Debian package maintainer | Germany}}
{{dev1| [[User:Pauan|Pauan]]                     | Graphics artist (painting, pixel art, interface design, etc.) | USA}}
{{dev2| [[User:Peavey|Dennis Friis (peavey)]]    | Programmer | Denmark}}
{{dev1| [[User:Platyna|Platyna]]                 | Slackware package maintainer | Poland}}
{{dev2| [[User:Avaniel|Rogier Polak (Avaniel)]]  | Programmer | The Netherlands}}
{{dev1| [[User:QOAL|Scott Ellis (Quiche_on_a_leash)]] | Content Management | England}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | Head of art, story and music | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]                 | Pixel artist | Poland}}
{{dev2| [[User:Trapdoor|trapdoor]]               | Programmer | England}}
{{dev1| [[User:Tuxtgz|Tuxtgz]]                   | Web-interface Programmer | Germany}}
{{dev2| [[User:Usiu|Mateusz Kaduk (Usiu)]]       | Programmer | Poland}}
{{dev1| [[User:VictorSan|VictorSan]]             | Programmer | Spain}}
{{dev2| [[User:Yosuhara|Yosuhara]]               | Pixel artist | Slovakia}}
{{dev1| [[User:Zipon|Zipon]]                     | Mapper | Denmark}}
|}
[[Category:reference]]</text>
      <sha1>9273mpefb0yocmythkihd098zj89z1u</sha1>
    </revision>
    <revision>
      <id>17989</id>
      <parentid>16141</parentid>
      <timestamp>2011-02-10T08:40:55Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>started a developer archive and cleared page to be made new.</comment>
      <origin>17989</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="21" sha1="9iboklomzcqszkzdl9scqf2iez9sgyg" xml:space="preserve">[[Developer Archive]]</text>
      <sha1>9iboklomzcqszkzdl9scqf2iez9sgyg</sha1>
    </revision>
    <revision>
      <id>17992</id>
      <parentid>17989</parentid>
      <timestamp>2011-02-10T09:16:02Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>updated list of developers</comment>
      <origin>17992</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1969" sha1="1bcorgltvvzxt112uo6r7hqm7jpkkz5" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Wombat|Wombat]]                   | TMW-eA content leader | USA}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Freeyorp|Freeyorp]]               | Server administrator, programmer, support | NZ}}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Server administrator, programmer, support | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Server administrator, Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | TMW-eA content advisor, head of TMW CRs | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]  | Pixel artist, art advisor | Poland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Pixel artist | USA}}
{{dev1| [[User:Lien|Lien]]                       | Pixel artist, script writer | France}}
{{dev2| [[User:Skipy|Skipy]]                     | Pixel artist | France}}
{{dev1| [[User:Meway|Meway]]                     | Pixel artist | USA}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | Pixel artist, script writer | NZ}}
{{dev1| [[User:Saturn|Saturn]]                   | Sound | ???}}
{{dev2| [[User:Alastrim|Alastrim]]               | Script writer | ???}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | Script writer, XML | USA}}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Script writer, mapping, programmer | Germany}}
{{dev1| [[User:Cody_Martin|Cody Martin]]         | Programmer, support | ???}}
{{dev2| [[User:Jenalya|Jenalya ]]                | Script writer, programmer | Germany}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | Sound | ???}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>1bcorgltvvzxt112uo6r7hqm7jpkkz5</sha1>
    </revision>
    <revision>
      <id>17996</id>
      <parentid>17992</parentid>
      <timestamp>2011-02-10T11:09:51Z</timestamp>
      <contributor>
        <username>Alastrim</username>
        <id>1776</id>
      </contributor>
      <minor/>
      <origin>17996</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1968" sha1="pk998wa2vfuu5jk72955piovic62pil" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Name
! style="background:#efdead;" width="200px" align="left" | Occupation
! style="background:#efdead;" width="150px" align="left" | Location

{{dev1| [[User:Wombat|Wombat]]                   | TMW-eA content leader | USA}}
{{dev2| [[User:Kage|Chuck Miller (Kage)]]        | Programmer | USA}}
{{dev1| [[User:Freeyorp|Freeyorp]]               | Server administrator, programmer, support | NZ}}
{{dev2| [[User:Jaxad0127|Jared Adams (Jaxad0127)]] | Server administrator, programmer, support | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Server administrator, Slackware package maintainer | Poland}}
{{dev2| [[User:Rotonen|Joni Orponen (Rotonen)]]  | TMW-eA content advisor, head of TMW CRs | Finland}}
{{dev1| [[User:Irukard|Krzysztof Daszuta (Irukard)]]  | Pixel artist, art advisor | Poland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Pixel artist | USA}}
{{dev1| [[User:Lien|Lien]]                       | Pixel artist, script writer | France}}
{{dev2| [[User:Skipy|Skipy]]                     | Pixel artist | France}}
{{dev1| [[User:Meway|Meway]]                     | Pixel artist | USA}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | Pixel artist, script writer | NZ}}
{{dev1| [[User:Saturn|Saturn]]                   | Sound | ???}}
{{dev2| [[User:Alastrim|Alastrim]]               | Script writer | BR}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | Script writer, XML | USA}}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Script writer, mapping, programmer | Germany}}
{{dev1| [[User:Cody_Martin|Cody Martin]]         | Programmer, support | ???}}
{{dev2| [[User:Jenalya|Jenalya ]]                | Script writer, programmer | Germany}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | Sound | ???}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>pk998wa2vfuu5jk72955piovic62pil</sha1>
    </revision>
    <revision>
      <id>17998</id>
      <parentid>17996</parentid>
      <timestamp>2011-02-10T12:54:50Z</timestamp>
      <contributor>
        <username>Freeyorp</username>
        <id>1501</id>
      </contributor>
      <comment>Split tmwAthena, tmw-manaserv, and other roles. Split usernames and names. Clarify ambiguous roles and include more roles. Add many tmw-manaserv developers. Unknown entries changes from ??? to -</comment>
      <origin>17998</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4042" sha1="rrc3tf5wiy8qprdv7cgwtmdo1qgjf4t" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop | - }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | - | Scripting, Mapping, Programmer | - | IRC Channel Operator | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Merlin|merlin]]                   | - | - | Mapping | - | - }}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>rrc3tf5wiy8qprdv7cgwtmdo1qgjf4t</sha1>
    </revision>
    <revision>
      <id>17999</id>
      <parentid>17998</parentid>
      <timestamp>2011-02-10T13:22:50Z</timestamp>
      <contributor>
        <username>Argul</username>
        <id>1858</id>
      </contributor>
      <minor/>
      <comment>adding PjotrOrials real name</comment>
      <origin>17999</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4054" sha1="j9jf22w6u5eqq9qdlilc66d43q3rmiq" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop | - }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | IRC Channel Operator | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Merlin|merlin]]                   | - | - | Mapping | - | - }}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>j9jf22w6u5eqq9qdlilc66d43q3rmiq</sha1>
    </revision>
    <revision>
      <id>18000</id>
      <parentid>17999</parentid>
      <timestamp>2011-02-10T13:40:21Z</timestamp>
      <contributor>
        <username>Argul</username>
        <id>1858</id>
      </contributor>
      <origin>18000</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4035" sha1="827fna4vxkyhj19s01umzwf085ka5d2" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop | - }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Merlin|merlin]]                   | - | - | Mapping | - | - }}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>827fna4vxkyhj19s01umzwf085ka5d2</sha1>
    </revision>
    <revision>
      <id>18072</id>
      <parentid>18000</parentid>
      <timestamp>2011-02-13T08:20:27Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>Added Crush using archive information with tmw-ea updated role "advisor" and applying archived role to manaserv...may need further updates to get accurate.</comment>
      <origin>18072</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4164" sha1="f5of0bpdclvvolop26ccw1nflv779u5" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop | - }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Pixel artist, mapper, programmer | - | Germany}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Merlin|merlin]]                   | - | - | Mapping | - | - }}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev1| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>f5of0bpdclvvolop26ccw1nflv779u5</sha1>
    </revision>
    <revision>
      <id>18073</id>
      <parentid>18072</parentid>
      <timestamp>2011-02-13T08:23:02Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>added merlin's role in tmw-ea</comment>
      <origin>18073</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4171" sha1="l87wc9qb5u4jnjber54hascxx8oapil" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop | - }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Pixel artist, mapper, programmer | - | Germany}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev1| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>l87wc9qb5u4jnjber54hascxx8oapil</sha1>
    </revision>
    <revision>
      <id>18074</id>
      <parentid>18073</parentid>
      <timestamp>2011-02-13T09:01:46Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>updated my country</comment>
      <origin>18074</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4176" sha1="fagshr6pva4o967xv3nfvo0qtpwhean" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Pixel artist, mapper, programmer | - | Germany}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev1| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>fagshr6pva4o967xv3nfvo0qtpwhean</sha1>
    </revision>
    <revision>
      <id>18077</id>
      <parentid>18074</parentid>
      <timestamp>2011-02-14T09:05:20Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>Sorry, but I don't intent to do any graphical or mapping work anymore, because my limited time for TMW has more value when I spend it on programming.</comment>
      <origin>18077</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4154" sha1="ofd1mpqpofevnqatppx12o6p3c41ouj" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | programmer | - | Germany}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev1| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>ofd1mpqpofevnqatppx12o6p3c41ouj</sha1>
    </revision>
    <revision>
      <id>18078</id>
      <parentid>18077</parentid>
      <timestamp>2011-02-14T09:06:41Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>oh, but I do have time for forum moderation because I can do it at work during my breaks.</comment>
      <origin>18078</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4168" sha1="ionam6moc31rxx6vgksg7hxqe2ig39e" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev1| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>ionam6moc31rxx6vgksg7hxqe2ig39e</sha1>
    </revision>
    <revision>
      <id>18117</id>
      <parentid>18078</parentid>
      <timestamp>2011-02-21T15:36:38Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>Added Dark Mage to developer list</comment>
      <origin>18117</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4271" sha1="r7erp1bbyp7wcbai99ht6edepq4956v" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev2| [[User:Dark_Mage|Dark Mage]]            | - |Scripting | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>r7erp1bbyp7wcbai99ht6edepq4956v</sha1>
    </revision>
    <revision>
      <id>18119</id>
      <parentid>18117</parentid>
      <timestamp>2011-02-21T15:47:39Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>I did big fixes in the french translations</comment>
      <origin>18119</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4295" sha1="5vamjna03odshag0kh98000eicm4ydn" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop, Translations (French) | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev2| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | - | Pixel artist, Scripting | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>5vamjna03odshag0kh98000eicm4ydn</sha1>
    </revision>
    <revision>
      <id>18256</id>
      <parentid>18119</parentid>
      <timestamp>2011-03-27T03:25:24Z</timestamp>
      <contributor>
        <username>Poison ivy</username>
        <id>1529</id>
      </contributor>
      <minor/>
      <comment>Added my real name (actually, my last name and the initials of my second and third names).</comment>
      <origin>18256</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4304" sha1="q20cnxwwxk9w7z87o3z9axymtrrnxlx" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop, Translations (French) | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev2| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Pixel artist, Scripting | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>q20cnxwwxk9w7z87o3z9axymtrrnxlx</sha1>
    </revision>
    <revision>
      <id>18267</id>
      <parentid>18256</parentid>
      <timestamp>2011-04-02T17:30:10Z</timestamp>
      <contributor>
        <username>Blue112</username>
        <id>1569</id>
      </contributor>
      <origin>18267</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4382" sha1="mt06s2ca6x6ty97fpr3t4y4dw0b07h6" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | - | Wiki Sysop, Translations (French) | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]             | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev2| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Pixel artist, Scripting | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>mt06s2ca6x6ty97fpr3t4y4dw0b07h6</sha1>
    </revision>
    <revision>
      <id>18455</id>
      <parentid>18267</parentid>
      <timestamp>2011-05-02T16:06:08Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <origin>18455</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4397" sha1="ati7ahy7be95l2dqysrtedahk7r0juj" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | - | Content, Mapping | Wiki Sysop, Translations (French) | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]             | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev2| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Pixel artist, Scripting | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                   | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>ati7ahy7be95l2dqysrtedahk7r0juj</sha1>
    </revision>
    <revision>
      <id>18469</id>
      <parentid>18455</parentid>
      <timestamp>2011-05-05T16:35:52Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>updated me and added o11c and reorganised colors</comment>
      <origin>18469</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4501" sha1="rp19ftsm786ye67kojjpf6vel1phu3z" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Pixel artist, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11C]]                       | - | Programmer | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | France}}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>rp19ftsm786ye67kojjpf6vel1phu3z</sha1>
    </revision>
    <revision>
      <id>18565</id>
      <parentid>18469</parentid>
      <timestamp>2011-05-22T17:13:47Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>added yubaba to the team</comment>
      <origin>18565</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4580" sha1="ew6rpnzk5b908uhm2jivg9aq0a3azch" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Pixel artist, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11C]]                       | - | Programmer | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | Sound Lead | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>ew6rpnzk5b908uhm2jivg9aq0a3azch</sha1>
    </revision>
    <revision>
      <id>18624</id>
      <parentid>18565</parentid>
      <timestamp>2011-05-30T17:37:44Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <minor/>
      <comment>Fix accidental capitalization</comment>
      <origin>18624</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4580" sha1="4ay3i3vmgod685piab0pe93fm07fjqk" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | BR }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Pixel artist, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | - | Programmer | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | Sound Lead | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>4ay3i3vmgod685piab0pe93fm07fjqk</sha1>
    </revision>
    <revision>
      <id>18820</id>
      <parentid>18624</parentid>
      <timestamp>2011-06-26T23:46:40Z</timestamp>
      <contributor>
        <username>Alastrim</username>
        <id>1776</id>
      </contributor>
      <origin>18820</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4584" sha1="qli7vcldoa3b4fe4rbvbqmax3x0vciv" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Pixel artist, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Head Smasher1|Head Smasher1]]     | - | Sound | - | - | - }}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | Art advisor | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | - | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Merlin|merlin]]                   | - | Tilesets | Mapping | - | - }}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | - | Programmer | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | Sound | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | Sound Lead | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>qli7vcldoa3b4fe4rbvbqmax3x0vciv</sha1>
    </revision>
    <revision>
      <id>18920</id>
      <parentid>18820</parentid>
      <timestamp>2011-07-10T06:40:41Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>tmwa content developer and related updates to list</comment>
      <origin>18920</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4429" sha1="jr8aselfywboj9l7s7uhfvp5at5pvwl" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Art Director, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | - | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | Scripting, Programmer | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | - | Programmer | - | - | USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | Sound Lead | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>jr8aselfywboj9l7s7uhfvp5at5pvwl</sha1>
    </revision>
    <revision>
      <id>18953</id>
      <parentid>18920</parentid>
      <timestamp>2011-07-17T03:11:21Z</timestamp>
      <contributor>
        <username>Hal9000</username>
        <id>2105</id>
      </contributor>
      <origin>18953</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4533" sha1="0rd5kruetr0l40sbwpuy0ipz2l1a2su" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Art Director, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | Scripting, Programmer | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | - | Programmer | - | - | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | - }}
{{dev1| [[User:Wombat|Wombat]]                   | - | Content Lead | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | Sound Lead | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>0rd5kruetr0l40sbwpuy0ipz2l1a2su</sha1>
    </revision>
    <revision>
      <id>19200</id>
      <parentid>18953</parentid>
      <timestamp>2011-08-05T11:40:02Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <origin>19200</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4527" sha1="sb3ca5n7vt7rb24l1h3tncd2oug3mwu" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Art Director, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | Scripting, Programmer | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | - | Programmer | - | - | USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | - }}
{{dev1| [[User:Wombat|Wombat]]                   | - | Leader | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | Sound Lead | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>sb3ca5n7vt7rb24l1h3tncd2oug3mwu</sha1>
    </revision>
    <revision>
      <id>19445</id>
      <parentid>19200</parentid>
      <timestamp>2011-08-09T18:50:39Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>Update my entry a bit</comment>
      <origin>19445</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4547" sha1="i12cn6jncst1p5jyph8v41iuadt0xqc" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | Scripting | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | Scripting, Mapping, Programmer | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | Art Director, Scripting | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | Scripting, Programmer | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | Scripting, Programmer | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | Source Lead | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | Pixel artist | - | - | - }}
{{dev1| [[User:Wombat|Wombat]]                   | - | Leader | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | Sound Lead | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>i12cn6jncst1p5jyph8v41iuadt0xqc</sha1>
    </revision>
    <revision>
      <id>19880</id>
      <parentid>19445</parentid>
      <timestamp>2011-08-30T04:54:51Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>Make the board noticeable</comment>
      <origin>19880</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4637" sha1="jcfoeubuyqcv9um28t0rq0yjvtnf6x6" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]</text>
      <sha1>jcfoeubuyqcv9um28t0rq0yjvtnf6x6</sha1>
    </revision>
    <revision>
      <id>19894</id>
      <parentid>19880</parentid>
      <timestamp>2011-08-31T21:43:34Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>added a link to project and teams</comment>
      <origin>19894</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4665" sha1="jx3k41d8atq5htp0lsgyxtwaux6pvhr" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - |Scripting | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>jx3k41d8atq5htp0lsgyxtwaux6pvhr</sha1>
    </revision>
    <revision>
      <id>20174</id>
      <parentid>19894</parentid>
      <timestamp>2011-09-18T13:51:15Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>Added XML to Dark_Mage</comment>
      <origin>20174</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4671" sha1="l9t5wdc25qcth2g3tkb3msql5mzk82d" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | - }}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>l9t5wdc25qcth2g3tkb3msql5mzk82d</sha1>
    </revision>
    <revision>
      <id>20604</id>
      <parentid>20174</parentid>
      <timestamp>2011-09-25T17:43:39Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>Added Yubaba's country.</comment>
      <origin>20604</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4675" sha1="rp62dwyr6i0zz74lhojagfyytub9e0d" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | - | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>rp62dwyr6i0zz74lhojagfyytub9e0d</sha1>
    </revision>
    <revision>
      <id>21183</id>
      <parentid>20604</parentid>
      <timestamp>2011-10-01T09:45:46Z</timestamp>
      <contributor>
        <username>Salmondine</username>
        <id>1679</id>
      </contributor>
      <minor/>
      <comment>added real name to user salmondine</comment>
      <origin>21183</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4685" sha1="jqeqyn4pcx810yj33aprkogml3wm2li" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | - | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>jqeqyn4pcx810yj33aprkogml3wm2li</sha1>
    </revision>
    <revision>
      <id>21613</id>
      <parentid>21183</parentid>
      <timestamp>2011-10-16T13:17:42Z</timestamp>
      <contributor>
        <username>Irukard</username>
        <id>32</id>
      </contributor>
      <minor/>
      <origin>21613</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4705" sha1="pfspcp35qmeybz8vwvyi8tkg5ubq5vq" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish) | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>pfspcp35qmeybz8vwvyi8tkg5ubq5vq</sha1>
    </revision>
    <revision>
      <id>22574</id>
      <parentid>21613</parentid>
      <timestamp>2011-11-06T23:15:32Z</timestamp>
      <contributor>
        <username>Salmondine</username>
        <id>1679</id>
      </contributor>
      <minor/>
      <comment>added lizandra to list and moved some dev1 and dev2 tags for consistancy</comment>
      <origin>22574</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4794" sha1="lnxopuhazjmxgg02j3m7kyp8kqkyqwp" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Content, Mapping, Translations (French) | - | Wiki Sysop, Mantis Administrator | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish) | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | - | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>lnxopuhazjmxgg02j3m7kyp8kqkyqwp</sha1>
    </revision>
    <revision>
      <id>22575</id>
      <parentid>22574</parentid>
      <timestamp>2011-11-06T23:22:34Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>Updated my line.</comment>
      <origin>22575</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4751" sha1="nxbdl7tnmo1edusfv2n34ek4tcsp3jz" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | {{Board|Map Lead}} | - | Wiki SysOp | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish) | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | - | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>nxbdl7tnmo1edusfv2n34ek4tcsp3jz</sha1>
    </revision>
    <revision>
      <id>22576</id>
      <parentid>22575</parentid>
      <timestamp>2011-11-06T23:24:35Z</timestamp>
      <contributor>
        <username>Salmondine</username>
        <id>1679</id>
      </contributor>
      <minor/>
      <comment>Lizandra requested real name added.</comment>
      <origin>22576</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4770" sha1="6uyxl6jrcexmkedeeyxhe7rwc7hsbtz" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | {{Board|Map Lead}} | - | Wiki SysOp | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish) | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>6uyxl6jrcexmkedeeyxhe7rwc7hsbtz</sha1>
    </revision>
    <revision>
      <id>22883</id>
      <parentid>22576</parentid>
      <timestamp>2011-11-19T07:10:43Z</timestamp>
      <contributor>
        <username>Irukard</username>
        <id>32</id>
      </contributor>
      <origin>22883</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4806" sha1="h214ugqjf10myzka2lzop2pto90l4al" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | {{Board|Map Lead}} | - | Wiki SysOp | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>h214ugqjf10myzka2lzop2pto90l4al</sha1>
    </revision>
    <revision>
      <id>23058</id>
      <parentid>22883</parentid>
      <timestamp>2011-12-12T22:51:16Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>Updated own activites.</comment>
      <origin>23058</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4831" sha1="05rzh0l0pz6rlkav61rjbjyl3pen4b9" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Map Lead, XML Lead, Pixel Artist, Scripting | - | Wiki SysOp | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>05rzh0l0pz6rlkav61rjbjyl3pen4b9</sha1>
    </revision>
    <revision>
      <id>23171</id>
      <parentid>23058</parentid>
      <timestamp>2012-01-02T20:52:27Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>removed self</comment>
      <origin>23171</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4703" sha1="qqy6upctm5jcriuaim2afonqaibdzkm" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev2| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>qqy6upctm5jcriuaim2afonqaibdzkm</sha1>
    </revision>
    <revision>
      <id>23218</id>
      <parentid>23171</parentid>
      <timestamp>2012-01-04T16:06:27Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/Ali-G|Ali-G]] ([[User talk:Ali-G|talk]]) to last revision by [[User:Irukard|Irukard]]</comment>
      <origin>23218</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4806" sha1="h214ugqjf10myzka2lzop2pto90l4al" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | {{Board|Map Lead}} | - | Wiki SysOp | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>h214ugqjf10myzka2lzop2pto90l4al</sha1>
    </revision>
    <revision>
      <id>23307</id>
      <parentid>23218</parentid>
      <timestamp>2012-01-30T22:18:20Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>Undo revision 23218 by [[Special:Contributions/Ali-G|Ali-G]] ([[User talk:Ali-G|talk]]) Removed self.</comment>
      <origin>23307</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4703" sha1="qqy6upctm5jcriuaim2afonqaibdzkm" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev2| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==
[[Developer Archive]]&lt;br /&gt;[[Projects and Teams]]</text>
      <sha1>qqy6upctm5jcriuaim2afonqaibdzkm</sha1>
    </revision>
    <revision>
      <id>23420</id>
      <parentid>23307</parentid>
      <timestamp>2012-02-07T18:21:14Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <minor/>
      <comment>added a link to the contributors page</comment>
      <origin>23420</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4722" sha1="noji38d6z74xo3b70nuqsknho9r12a7" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev2| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | - }}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>noji38d6z74xo3b70nuqsknho9r12a7</sha1>
    </revision>
    <revision>
      <id>23561</id>
      <parentid>23420</parentid>
      <timestamp>2012-02-25T23:18:26Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>small edits</comment>
      <origin>23561</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4809" sha1="svixwf6m79gn3g860ol9st873icb02y" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Ali-G|Ali-G]]                     | - | Wiki Admin | - | - | France }}
{{dev1| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev2| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev1| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev2| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev1| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev2| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev1| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev2| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev1| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev1| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev2| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev1| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev2| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev1| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev2| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev1| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev2| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev1| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev2| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev1| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev2| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev1| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev2| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev1| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev2| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev1| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev2| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev1| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev2| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev1| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev2| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev1| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>svixwf6m79gn3g860ol9st873icb02y</sha1>
    </revision>
    <revision>
      <id>23983</id>
      <parentid>23561</parentid>
      <timestamp>2012-07-09T21:46:29Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>removed self</comment>
      <origin>23983</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4723" sha1="4tni06r5p4y62zc12zzle3artd9jkw5" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev2| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>4tni06r5p4y62zc12zzle3artd9jkw5</sha1>
    </revision>
    <revision>
      <id>24407</id>
      <parentid>23983</parentid>
      <timestamp>2012-09-05T20:08:03Z</timestamp>
      <contributor>
        <username>Rodrigo</username>
        <id>2213</id>
      </contributor>
      <origin>24407</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4828" sha1="4jeh9u283vu4ja92hu08c6tuhe6eyjl" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev3| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Rodrigo|Pluto]]                   | Arian Asimi | - | - | Translations (Shqip) | Kosova}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>4jeh9u283vu4ja92hu08c6tuhe6eyjl</sha1>
    </revision>
    <revision>
      <id>24431</id>
      <parentid>24407</parentid>
      <timestamp>2012-09-08T11:56:58Z</timestamp>
      <contributor>
        <username>Rodrigo</username>
        <id>2213</id>
      </contributor>
      <origin>24431</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4850" sha1="ofe4idmo1bpdzcflxrc6xdvmucc2s70" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev3| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Rodrigo|Pluto]]                   | Arian Asimi | Pixel artist | Pixel artist | Translations (Shqip) | Kosova}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>ofe4idmo1bpdzcflxrc6xdvmucc2s70</sha1>
    </revision>
    <revision>
      <id>24445</id>
      <parentid>24431</parentid>
      <timestamp>2012-09-08T20:36:28Z</timestamp>
      <contributor>
        <username>Jenalya</username>
        <id>1876</id>
      </contributor>
      <minor/>
      <comment>Update my role</comment>
      <origin>24445</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4852" sha1="rgxieg61t3b09wze3vaanf86mf27frg" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev3| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev2| [[User:Rodrigo|Pluto]]                   | Arian Asimi | Pixel artist | Pixel artist | Translations (Shqip) | Kosova}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Content Lead, Scripting}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>rgxieg61t3b09wze3vaanf86mf27frg</sha1>
    </revision>
    <revision>
      <id>24475</id>
      <parentid>24445</parentid>
      <timestamp>2012-09-13T11:38:18Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>24475</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4723" sha1="932f8mww169de5bsdmaonq4c3xk8h9r" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev3| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | - | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>932f8mww169de5bsdmaonq4c3xk8h9r</sha1>
    </revision>
    <revision>
      <id>24880</id>
      <parentid>24475</parentid>
      <timestamp>2012-11-14T13:30:23Z</timestamp>
      <contributor>
        <username>Meway</username>
        <id>1474</id>
      </contributor>
      <minor/>
      <comment>Added my name</comment>
      <origin>24880</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4733" sha1="l50250tapjhmxw2tro8t1cij94adouh" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev3| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | Andrew Hall | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>l50250tapjhmxw2tro8t1cij94adouh</sha1>
    </revision>
    <revision>
      <id>25674</id>
      <parentid>24880</parentid>
      <timestamp>2013-02-19T11:27:55Z</timestamp>
      <contributor>
        <username>Yubaba</username>
        <id>2094</id>
      </contributor>
      <origin>25674</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4742" sha1="m7vpxusvd2tqsq4xwu2uyexy5ajzy69" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev3| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | Andrew Hall | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | Server and Network Administrator, IRC Network Administrator, Forums Administrator | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead, Mapping}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>m7vpxusvd2tqsq4xwu2uyexy5ajzy69</sha1>
    </revision>
    <revision>
      <id>26446</id>
      <parentid>25674</parentid>
      <timestamp>2013-05-28T03:42:54Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>remove Platyna's roles. There are many other problems with this page, but that was the worst</comment>
      <origin>26446</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4662" sha1="23iosds5h1tozbufmfzt29w8znxih5p" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev3| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | Andrew Hall | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | - | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead, Mapping}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>23iosds5h1tozbufmfzt29w8znxih5p</sha1>
    </revision>
    <revision>
      <id>26666</id>
      <parentid>26446</parentid>
      <timestamp>2013-06-15T16:16:04Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>26666</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4771" sha1="essinbp0ivcl1hqmtwjgyihu87mevq1" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location


{{dev1| [[User:4144|4144]]               | - | {{Board|Client development, Programmer}} | - | - | Russia }}
{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev3| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | Andrew Hall | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | - | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead, Mapping}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>essinbp0ivcl1hqmtwjgyihu87mevq1</sha1>
    </revision>
    <revision>
      <id>27089</id>
      <parentid>26666</parentid>
      <timestamp>2013-07-01T19:43:15Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Jaxad0127 moved page [[Developers]] to [[Dev:Developers]]</comment>
      <origin>27089</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4771" sha1="essinbp0ivcl1hqmtwjgyihu87mevq1" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location


{{dev1| [[User:4144|4144]]               | - | {{Board|Client development, Programmer}} | - | - | Russia }}
{{dev1| [[User:Alastrim|Alastrim]]               | - | {{Board|Scripting}} | - | - | Brasil }}
{{dev2| [[User:Argul|Argul (PjotrOrial) ]]       | Stefan Beller | {{Board|Scripting, Mapping, Programmer}} | - | - | Germany}}
{{dev1| [[User:Axltrozz|Axltrozz]]               | - | - | Tileset and Mapping | IRC Channel Operator | - }}
{{dev2| [[User:bcs|bcs]]                         | - | - | Pixel art | - | - }}
{{dev1| [[User:Bertram|Bertram]]                 | Yohann Ferreira | - | - | dev.themanaworld.org services administrator, IRC Channel Operator, Programmer | France}}
{{dev2| [[User:Black_Don|Black Don]]             | - | - | Pixel Artist | - | - }}
{{dev1| [[User:Blue112|BlueSoul]]                | - | - | Programmer | - | - }}
{{dev2| [[User:Cody_Martin|Cody]]                | Cody Martin | - | - | IRC Channel Operator, Programmer | - }}
{{dev1| [[User:Crush|Crush]]                     | Philipp Sehmisch | Advisor | Programmer | Forum Moderator | Germany}}
{{dev3| [[User:Dark_Mage|Dark Mage]]             | - | Scripting, XML | - | Translations (Russian) | Russia}}
{{dev1| [[User:Poison_ivy|Enchilado]]            | W E Sayers | {{Board|Art Director, Scripting}} | - | - | Australia}}
{{dev2| [[User:Feline Monstrocity|Feline Monstrocity]]| - | - | Soundscape | - | Wales, UK }}
{{dev1| [[User:Freeyorp|Freeyorp]]               | - | - | Balance, Mechanics and Systems Lead | server.themanaworld.org and testing.themanaworld.org Services Administrator, IRC Services Administrator, Forums Administrator, Programmer | NZ}}
{{dev2| [[User:Hal9000|Hal9000]]                 | Francesco Miglietta | Pixel Artist | - | - | Italy}}
{{dev1| [[User:Irukard|Irukard]]                 | Krzysztof Daszuta | - | Pixel Artist | Translations (Polish), Facebook Community Page Maintainer | Poland}}
{{dev2| [[User:Ivan|Ivan]]                       | Ivan Morve | - | Pixel Artist | - | - }}
{{dev1| [[User:Jaxad0127|Jaxad0127]]             | Jared Adams | - | - | server.themanaworld.org and testing.themanaworld.org Services Administrator, Website Services Administrator, IRC Channel Administrator, Forums Administrator, Wiki Sysop and Bureaucrat, Mantis Administrator, Programmer | USA}}
{{dev2| [[User:John_Pyle|John P]]                | John Pyle | - | Story Lead | - | - }} 
{{dev1| [[User:Jenalya|Jenalya]]                 | - | {{Board|Scripting, Programmer}} | - | - | Germany}}
{{dev2| [[User:Kage|Kage]]                       | Chuck Miller | {{Board|Scripting, Programmer}} | - | IRC Channel Operator, Forums Global Moderator, Programmer | USA}}
{{dev1| [[User:krazyjakee|krazyjakee]]           | - | - | Soundscape | - | - }}
{{dev2| [[User:Lien|Lien]]                       | - | Pixel artist, Scripting | - | - | France}}
{{dev1| [[User:Lizandra|Lizandra]]               | Filipa Serra e Silva | Pixel artist | - | - | Portugal}}
{{dev2| [[User:Hackgrid|Matt]]                   | - | - | - | Blabbering idiot | Germany}}
{{dev1| [[User:Meway|Meway]]                     | Andrew Hall | Pixel artist | Pixel Artist | - | USA}}
{{dev2| [[User:Nmaligec|Nmaligec]]               | - | Scripting, XML | - | - | USA}}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | {{Board|Source Lead}} | - | - | Western USA}}
{{dev2| [[User:Platyna|Platyna]]                 | Zuzanna K. Filutowska | - | - | - | Poland}}
{{dev1| [[User:Rotonen|Rotonen]]                 | Joni Orponen | Advisor | Project Lead | IRC Channel Administrator, Forums Administrator | Finland}}
{{dev2| [[User:Salmondine|Salmondine]]           | Mark Dunbar | Pixel artist | - | - | USA}}
{{dev1| [[User:Saturn|Saturn]]                   | - | - | Soundscape Lead | - | - }}
{{dev2| [[User:Skipy|Skipy]]                     | - | {{Board|Pixel artist}} | - | - | USA}}
{{dev1| [[User:Wombat|Wombat]]                   | - | {{Board|Leader}} | - | IRC Channel Operator, Forums Global Moderator, Mantis Administrator | USA}}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | {{Board|Sound Lead, Mapping}} | - | - | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>essinbp0ivcl1hqmtwjgyihu87mevq1</sha1>
    </revision>
    <revision>
      <id>28302</id>
      <parentid>27089</parentid>
      <timestamp>2013-09-25T13:11:49Z</timestamp>
      <contributor>
        <username>Tux</username>
        <id>2198</id>
      </contributor>
      <origin>28302</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1448" sha1="5ir2z38rs4eoc30dwyj6zd3kboh5szl" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]]                     | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]]                     | - | Pixel Arts, Scripting | - | - | - }}

{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev2| Straelyn | - | Pixel Arts, Scripting, Coding | - | - | - }}
{{dev1| [[User:tux|tux9th]]                       | - | Mapping Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:V0id|V0id]] | Vincent Petithory | Mapping, Scripting, Programming, Pixel Arts| - | - | France}}
{{dev1| Wushin | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | - | - | {{Board|Sound Lead}} | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>5ir2z38rs4eoc30dwyj6zd3kboh5szl</sha1>
    </revision>
    <revision>
      <id>28316</id>
      <parentid>28302</parentid>
      <timestamp>2013-09-27T20:25:01Z</timestamp>
      <contributor>
        <username>Yubaba</username>
        <id>2094</id>
      </contributor>
      <origin>28316</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1471" sha1="74qzodct9wq4mjvzkbpi5wfi7qp3msc" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]]                     | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]]                     | - | Pixel Arts, Scripting | - | - | - }}

{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev2| Straelyn | - | Pixel Arts, Scripting, Coding | - | - | - }}
{{dev1| [[User:tux|tux9th]]                       | - | Mapping Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:V0id|V0id]] | Vincent Petithory | Mapping, Scripting, Programming, Pixel Arts| - | - | France}}
{{dev1| Wushin | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev2| [[User:Yubaba|Yubaba]]                     | Mapping, SFX, Soundscape | - | - | {{Board|Sound Lead}} | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>74qzodct9wq4mjvzkbpi5wfi7qp3msc</sha1>
    </revision>
    <revision>
      <id>28317</id>
      <parentid>28316</parentid>
      <timestamp>2013-09-27T20:25:45Z</timestamp>
      <contributor>
        <username>Yubaba</username>
        <id>2094</id>
      </contributor>
      <origin>28317</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1478" sha1="tv8ax3q69q5heuaj1oi91f07s8rm2p6" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]]                     | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]]                     | - | Pixel Arts, Scripting | - | - | - }}

{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev2| Straelyn | - | Pixel Arts, Scripting, Coding | - | - | - }}
{{dev1| [[User:tux|tux9th]]                       | - | Mapping Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:V0id|V0id]] | Vincent Petithory | Mapping, Scripting, Programming, Pixel Arts| - | - | France}}
{{dev1| Wushin | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>tv8ax3q69q5heuaj1oi91f07s8rm2p6</sha1>
    </revision>
    <revision>
      <id>28825</id>
      <parentid>28317</parentid>
      <timestamp>2013-11-15T11:54:40Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <comment>adding links to user pages</comment>
      <origin>28825</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1511" sha1="ppea7edazkxsqeak7bwvy6xkmi4ooh1" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]]                     | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]]                     | - | Pixel Arts, Scripting | - | - | - }}
{{dev1| [[User:o11c|o11c]]                       | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev2| [[User:Straelyn|Straelyn]] | - | Pixel Arts, Scripting, Coding | - | - | - }}
{{dev1| [[User:tux|tux9th]]                       | - | Mapping Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:V0id|V0id]] | Vincent Petithory | Mapping, Scripting, Programming, Pixel Arts| - | - | France}}
{{dev1| [[User:Wushin|Wushin]] | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev2| [[User:Yubaba|Yubaba]]                     | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>ppea7edazkxsqeak7bwvy6xkmi4ooh1</sha1>
    </revision>
    <revision>
      <id>29309</id>
      <parentid>28825</parentid>
      <timestamp>2014-02-17T10:21:50Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>deleting Straelyn as he quit dev'ing and playing, adding Chay</comment>
      <origin>29309</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1431" sha1="rri39sunzrc4jm9w96lzt1w00bmcwo5" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Chayenne|Chay (Bernhardt)]] | - | Pixel Arts, Scripting, Mapping | - | - | - }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:V0id|V0id]] | Vincent Petithory | Mapping, Scripting, Programming, Pixel Arts| - | - | France}}
{{dev1| [[User:Wushin|Wushin]] | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev2| [[User:Yubaba|Yubaba]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>rri39sunzrc4jm9w96lzt1w00bmcwo5</sha1>
    </revision>
    <revision>
      <id>29310</id>
      <parentid>29309</parentid>
      <timestamp>2014-02-17T10:22:45Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <origin>29310</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1432" sha1="dw012gtppyb00anbazxry9ccn6vvxqi" xml:space="preserve">{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Chayenne|Chay (Bernhardt)]] | - | Pixel Arts, Scripting, Mapping | - | - | - }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:V0id|V0id]] | Vincent Petithory | Mapping, Scripting, Programming, Pixel Arts| - | - | France}}
{{dev1| [[User:Wushin|Wushin]] | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev2| [[User:Yubaba|Yubaba]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}
[[Category:reference]]

==See Also==

* [[Projects and Teams]]
* [[Developer Archive]]
* [[Contributors]]</text>
      <sha1>dw012gtppyb00anbazxry9ccn6vvxqi</sha1>
    </revision>
    <revision>
      <id>29478</id>
      <parentid>29310</parentid>
      <timestamp>2014-02-26T13:57:21Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>updating with additional information like links to Trello</comment>
      <origin>29478</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2398" sha1="gl79mf6wztmjfp8sefcy7m0dxmubny1" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Chayenne|Chay (Bernhardt)]] | - | Pixel Arts, Scripting, Mapping | - | - | - }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:V0id|V0id]] | Vincent Petithory | Mapping, Scripting, Programming, Pixel Arts| - | - | France}}
{{dev1| [[User:Wushin|Wushin]] | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev2| [[User:Yubaba|Yubaba]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]


==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>gl79mf6wztmjfp8sefcy7m0dxmubny1</sha1>
    </revision>
    <revision>
      <id>29486</id>
      <parentid>29478</parentid>
      <timestamp>2014-02-27T06:57:28Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>deleted V0id, already added to [[Contributors]] and [[Developer Archive]]</comment>
      <origin>29486</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2287" sha1="ir5agiese238bnaig3swn2h6inrgy9z" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Chayenne|Chay (Bernhardt)]] | - | Pixel Arts, Scripting, Mapping | - | - | - }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:Wushin|Wushin]] | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev1| [[User:Yubaba|Yubaba]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]


==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>ir5agiese238bnaig3swn2h6inrgy9z</sha1>
    </revision>
    <revision>
      <id>29566</id>
      <parentid>29486</parentid>
      <timestamp>2014-02-28T08:42:21Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <comment>/* Recent projects */ small grammar mistake</comment>
      <origin>29566</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2289" sha1="1zm13789rjdqp5fzcqvjvsb8znw9upb" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Chayenne|Chay (Bernhardt)]] | - | Pixel Arts, Scripting, Mapping | - | - | - }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:Wushin|Wushin]] | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev1| [[User:Yubaba|Yubaba]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]


==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>1zm13789rjdqp5fzcqvjvsb8znw9upb</sha1>
    </revision>
    <revision>
      <id>29708</id>
      <parentid>29566</parentid>
      <timestamp>2014-03-03T12:41:49Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>adding [[Dev:Main]] and [[Joining the project]] under "see also"</comment>
      <origin>29708</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2347" sha1="0g61eial46memve6y1kwz9qbpo1zjld" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Chayenne|Chay (Bernhardt)]] | - | Pixel Arts, Scripting, Mapping | - | - | - }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:Wushin|Wushin]] | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | - }}
{{dev1| [[User:Yubaba|Yubaba]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]


==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>0g61eial46memve6y1kwz9qbpo1zjld</sha1>
    </revision>
    <revision>
      <id>29760</id>
      <parentid>29708</parentid>
      <timestamp>2014-03-06T04:37:58Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <minor/>
      <comment>/* Developers */</comment>
      <origin>29760</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2355" sha1="dpt7qornhe7wyoq1y82g7qbzczv7wd4" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Chayenne|Chay (Bernhardt)]] | - | Pixel Arts, Scripting, Mapping | - | - | - }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:Wushin|Wushin]] | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>dpt7qornhe7wyoq1y82g7qbzczv7wd4</sha1>
    </revision>
    <revision>
      <id>29781</id>
      <parentid>29760</parentid>
      <timestamp>2014-03-06T18:38:52Z</timestamp>
      <contributor>
        <username>Yubaba</username>
        <id>2094</id>
      </contributor>
      <origin>29781</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2370" sha1="aqcidolef8u21lybl5dl04jqcltiw1s" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Chayenne|Chay (Bernhardt)]] | - | Pixel Arts, Scripting, Mapping | - | - | - }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:Wushin|Wushin]] | - | Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>aqcidolef8u21lybl5dl04jqcltiw1s</sha1>
    </revision>
    <revision>
      <id>29796</id>
      <parentid>29781</parentid>
      <timestamp>2014-03-08T21:06:25Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <minor/>
      <comment>/* Developers */</comment>
      <origin>29796</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2395" sha1="5hbxdtx40nyvfzvr5pbtohh13tsko2m" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Chayenne|Chay (Bernhardt)]] | - | Pixel Arts, Scripting, Mapping | - | - | - }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>5hbxdtx40nyvfzvr5pbtohh13tsko2m</sha1>
    </revision>
    <revision>
      <id>29797</id>
      <parentid>29796</parentid>
      <timestamp>2014-03-08T21:06:44Z</timestamp>
      <contributor>
        <username>Chayenne</username>
        <id>2288</id>
      </contributor>
      <comment>removed chayenne</comment>
      <origin>29797</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2300" sha1="eiyhetw1p0hi0dltaa746fctwklhxi9" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev2| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>eiyhetw1p0hi0dltaa746fctwklhxi9</sha1>
    </revision>
    <revision>
      <id>29813</id>
      <parentid>29797</parentid>
      <timestamp>2014-03-11T10:48:45Z</timestamp>
      <contributor>
        <username>Chayenne</username>
        <id>2288</id>
      </contributor>
      <comment>fixed colors</comment>
      <origin>29813</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2300" sha1="kydcadqemamqmz71eclm2g6kolmo2ya" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev2| [[User:tux|tux9th]] | - | Mapping, Scripting  | - | {{Board|Content Lead}} | -}}
{{dev1| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev2| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>kydcadqemamqmz71eclm2g6kolmo2ya</sha1>
    </revision>
    <revision>
      <id>29966</id>
      <parentid>29813</parentid>
      <timestamp>2014-03-28T07:49:07Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>deleting tux9th as he resigned today - see https://forums.themanaworld.org/viewtopic.php?f=12&amp;t=18177 ...</comment>
      <origin>29966</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2211" sha1="a2r0q67vayjq7spwg4djyywhx48cgtc" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev2| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>a2r0q67vayjq7spwg4djyywhx48cgtc</sha1>
    </revision>
    <revision>
      <id>30956</id>
      <parentid>29966</parentid>
      <timestamp>2014-07-03T20:23:37Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Developers */</comment>
      <origin>30956</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2278" sha1="4vwwx2usl5tga6erpm8m46dochek67k" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev2| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | ? }}
{{dev1| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev2| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>4vwwx2usl5tga6erpm8m46dochek67k</sha1>
    </revision>
    <revision>
      <id>31106</id>
      <parentid>30956</parentid>
      <timestamp>2014-07-27T05:08:51Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>/* Developers */</comment>
      <origin>31106</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2283" sha1="iv103qbtzuj93t41ivovyvcssrlszts" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev2| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | Canada }}
{{dev1| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev2| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>iv103qbtzuj93t41ivovyvcssrlszts</sha1>
    </revision>
    <revision>
      <id>31107</id>
      <parentid>31106</parentid>
      <timestamp>2014-07-27T05:10:57Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>/* Developers */ update list color</comment>
      <origin>31107</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2283" sha1="2xn95dnznnsoc6ddulqfzfhegv4lc1d" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | Canada }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev2| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]</text>
      <sha1>2xn95dnznnsoc6ddulqfzfhegv4lc1d</sha1>
    </revision>
    <revision>
      <id>31839</id>
      <parentid>31107</parentid>
      <timestamp>2014-12-17T16:17:38Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* categorizing */</comment>
      <origin>31839</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2308" sha1="o87gpzuf6knozulpy52b5ag5rmqyah9" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | Canada }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev2| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]
[[Category:Development]]</text>
      <sha1>o87gpzuf6knozulpy52b5ag5rmqyah9</sha1>
    </revision>
    <revision>
      <id>32357</id>
      <parentid>31839</parentid>
      <timestamp>2015-01-19T09:04:15Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <comment>added license.txt in the "See also"</comment>
      <origin>32357</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2432" sha1="8g7gku5s64w4niwj6mm6da6ief786fl" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | Canada }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev2| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on Trello, an organisation platform with a very clearly arranged interface that makes it comfortable to work with. TMW has an own group on Trello which includes so called "Boards". In those boards you can find several "Cards" - each card stands for a bigger or smaller project, like for example a card for a new big quest in the Content Development Board or a card for just a small icon of a new monster drop. You can click at a card to see the progress of it. At the right side of a each board you can see the most recent changes and therefore the things being recently worked on.


Relevant links:
* [https://trello.com/themanaworld TMW Organisation]
* [https://trello.com/b/ojhvZu1f/content-development Content Development Board]
* [https://trello.com/b/rNnx513z/art-development Art Development Board]


[[Category:reference]]
[[Category:Projects]]
[[Category:Development]]</text>
      <sha1>8g7gku5s64w4niwj6mm6da6ief786fl</sha1>
    </revision>
    <revision>
      <id>32358</id>
      <parentid>32357</parentid>
      <timestamp>2015-01-19T09:59:58Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <comment>Replacing Trello with the forums for development organization</comment>
      <origin>32358</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2137" sha1="lt03v1dsu57lu5kqj3oeffhr945kwxn" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | Canada }}
{{dev2| [[User:o11c|o11c]] | Ben Longbons | tmwA Server programming, Scripting | - | {{Board|Source Lead}} | Western USA}}
{{dev1| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev2| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:reference]]
[[Category:Projects]]
[[Category:Development]]</text>
      <sha1>lt03v1dsu57lu5kqj3oeffhr945kwxn</sha1>
    </revision>
    <revision>
      <id>32574</id>
      <parentid>32358</parentid>
      <timestamp>2015-02-07T02:56:36Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* updated for o11c's resignation */</comment>
      <origin>32574</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2014" sha1="qnizblsho2vzut5a4hp7pfv7mtq4pj4" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | Canada }}
{{dev1| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev2| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:reference]]
[[Category:Projects]]
[[Category:Development]]</text>
      <sha1>qnizblsho2vzut5a4hp7pfv7mtq4pj4</sha1>
    </revision>
    <revision>
      <id>32584</id>
      <parentid>32574</parentid>
      <timestamp>2015-02-09T10:34:16Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <comment>minor style correction</comment>
      <origin>32584</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2014" sha1="p5hv93bgkhao4h0bx5w2ghlhgum95su" xml:space="preserve">==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | Canada }}
{{dev2| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:reference]]
[[Category:Projects]]
[[Category:Development]]</text>
      <sha1>p5hv93bgkhao4h0bx5w2ghlhgum95su</sha1>
    </revision>
    <revision>
      <id>33679</id>
      <parentid>32584</parentid>
      <timestamp>2015-03-11T07:23:36Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <comment>adding templates, removing categories</comment>
      <origin>33679</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2037" sha1="s165n2v5oq9r4pw9uipzi37z3hzh568" xml:space="preserve">{{Template:Metakey}}
{{Template:Metadesc}}
{{Category_playerinfo}}

==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | Canada }}
{{dev2| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>s165n2v5oq9r4pw9uipzi37z3hzh568</sha1>
    </revision>
    <revision>
      <id>38411</id>
      <parentid>33679</parentid>
      <timestamp>2015-08-03T22:02:09Z</timestamp>
      <contributor>
        <username>Mpslinux</username>
        <id>2406</id>
      </contributor>
      <origin>38411</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2003" sha1="6wq96o3jqv2489hydtbav026v5dpz0k" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | tmwAthena roles
! style="background:#edfead;" width="170px" align="left" | tmw-manaserv roles
! style="background:#efdead;" width="170px" align="left" | Other roles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development, programming | - | - | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | - | Germany }}
{{dev1| [[User:Meko|Meko]] | - | Mapping, Scripting | - | - | Canada }}
{{dev2| [[User:Wushin|Wushin]] | - | tmwA Server programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>6wq96o3jqv2489hydtbav026v5dpz0k</sha1>
    </revision>
    <revision>
      <id>39736</id>
      <parentid>38411</parentid>
      <timestamp>2015-10-24T00:25:00Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>/* Developers */</comment>
      <origin>39736</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2108" sha1="bx1hdxmqba768dty7k596l0r4zqod0b" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | Roles
! style="background:#edfead;" width="170px" align="left" | Active projects
! style="background:#efdead;" width="170px" align="left" | Titles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development | - | {{Board|Client Lead}} | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | - | {{Board|Wiki Admin}} | Germany }}
{{dev1| [[User:Meko|Meko (Gumi)]] | - | tmwAthena programming, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3] | - | Canada }}
{{dev2| [[User:Wushin|Wushin]] | - | tmwAthena programming, Pixel Arts, Mapping, Scripting | - | {{Board|Content Lead, Server Admin}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>bx1hdxmqba768dty7k596l0r4zqod0b</sha1>
    </revision>
    <revision>
      <id>39737</id>
      <parentid>39736</parentid>
      <timestamp>2015-10-24T00:37:09Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>/* Developers */</comment>
      <origin>39737</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2267" sha1="1t3v3u517dc0d4tcmbt4uknugasy091" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | Roles
! style="background:#edfead;" width="170px" align="left" | Active project(s)
! style="background:#efdead;" width="170px" align="left" | Titles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development | [https://manaplus.org/ ManaPlus] | {{Board|Client Lead}} | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | [[User:Cassy|Witch Cult Quest]] | {{Board|Wiki Admin}} | Germany }}
{{dev1| [[User:Meko|Meko (Gumi)]] | - | tmwAthena programming, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Elements, Races | - | Canada }}
{{dev2| [[User:Wushin|Wushin]] | - | tmwAthena programming, Pixel Arts, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Professions | {{Board|TMWA Lead, Content Lead, Server Admin}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>1t3v3u517dc0d4tcmbt4uknugasy091</sha1>
    </revision>
    <revision>
      <id>39949</id>
      <parentid>39737</parentid>
      <timestamp>2015-11-23T21:28:50Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Add Nami Back as active */</comment>
      <origin>39949</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2336" sha1="3wraukqncsic0c5iqkwxpbopisqvkmp" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | Roles
! style="background:#edfead;" width="170px" align="left" | Active project(s)
! style="background:#efdead;" width="170px" align="left" | Titles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development | [https://manaplus.org/ ManaPlus] | {{Board|Client Lead}} | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | [[User:Cassy|Witch Cult Quest]] | {{Board|Wiki Admin}} | Germany }}
{{dev1| [[User:Meko|Meko (Gumi)]] | - | tmwAthena programming, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Elements, Races | - | Canada }}
{{dev2| [[User:Wushin|Wushin]] | - | tmwAthena programming, Pixel Arts, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Professions | {{Board|TMWA Lead, Content Lead, Server Admin}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
{{dev1| [[User:Nami|Nami]] | - | Art Director | - | Art Leand | UK}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>3wraukqncsic0c5iqkwxpbopisqvkmp</sha1>
    </revision>
    <revision>
      <id>39950</id>
      <parentid>39949</parentid>
      <timestamp>2015-11-23T21:29:35Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Wushin can't spell */</comment>
      <origin>39950</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2335" sha1="ll8ret9dsh69utyfuhfdcwg7d1kx579" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | Roles
! style="background:#edfead;" width="170px" align="left" | Active project(s)
! style="background:#efdead;" width="170px" align="left" | Titles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development | [https://manaplus.org/ ManaPlus] | {{Board|Client Lead}} | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | [[User:Cassy|Witch Cult Quest]] | {{Board|Wiki Admin}} | Germany }}
{{dev1| [[User:Meko|Meko (Gumi)]] | - | tmwAthena programming, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Elements, Races | - | Canada }}
{{dev2| [[User:Wushin|Wushin]] | - | tmwAthena programming, Pixel Arts, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Professions | {{Board|TMWA Lead, Content Lead, Server Admin}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
{{dev1| [[User:Nami|Nami]] | - | Art Director | - | Art Lead | UK}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>ll8ret9dsh69utyfuhfdcwg7d1kx579</sha1>
    </revision>
    <revision>
      <id>39951</id>
      <parentid>39950</parentid>
      <timestamp>2015-11-24T01:14:54Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>styling</comment>
      <origin>39951</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2345" sha1="jdrnk8zjz3vhczkg4vbw133fsdunmfy" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | Roles
! style="background:#edfead;" width="170px" align="left" | Active project(s)
! style="background:#efdead;" width="170px" align="left" | Titles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development | [https://manaplus.org/ ManaPlus] | {{Board|Client Lead}} | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | [[User:Cassy|Witch Cult Quest]] | {{Board|Wiki Admin}} | Germany }}
{{dev1| [[User:Meko|Meko (Gumi)]] | - | tmwAthena programming, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Elements, Races | - | Canada }}
{{dev2| [[User:Wushin|Wushin]] | - | tmwAthena programming, Pixel Arts, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Professions | {{Board|TMWA Lead, Content Lead, Server Admin}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
{{dev2| [[User:Nami|Nami]] | - | Art Director | - | {{Board|Art Lead}} | UK}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>jdrnk8zjz3vhczkg4vbw133fsdunmfy</sha1>
    </revision>
    <revision>
      <id>40602</id>
      <parentid>39951</parentid>
      <timestamp>2016-08-05T20:04:34Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <origin>40602</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2338" sha1="g0hhzwadqtkxpke7eof5gzqv9i8e7mw" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | Roles
! style="background:#edfead;" width="170px" align="left" | Active project(s)
! style="background:#efdead;" width="170px" align="left" | Titles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:4144|4144]] | - | Client development | [https://manaplus.org/ ManaPlus] | {{Board|Client Lead}} | - }}
{{dev2| [[User:Cassy|Cassy]] | - | Pixel Arts, Scripting, Mapping | [[User:Cassy|Witch Cult Quest]] | {{Board|Wiki Admin}} | Germany }}
{{dev1| [[User:Meko|Gumi]] | - | tmwAthena programming, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Elements, Races | - | Canada }}
{{dev2| [[User:Wushin|Wushin]] | - | tmwAthena programming, Pixel Arts, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Professions | {{Board|TMWA Lead, Content Lead, Server Admin}} | Midwest US }}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Sound Lead}} | Canada}}
{{dev2| [[User:Nami|Nami]] | - | Art Director | - | {{Board|Art Lead}} | UK}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>g0hhzwadqtkxpke7eof5gzqv9i8e7mw</sha1>
    </revision>
    <revision>
      <id>40709</id>
      <parentid>40602</parentid>
      <timestamp>2016-09-25T13:37:32Z</timestamp>
      <contributor>
        <username>WildX</username>
        <id>1896</id>
      </contributor>
      <comment>Updated list</comment>
      <origin>40709</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2552" sha1="kjvw2sizbjvyd0ohsdrlp89jwcdix87" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==
The list below shows the active developers who are working on TMW's content or server.


{| border="0" cellspacing="0" cellpadding="5" width="100%" style="border-bottom: 2px solid #efdead"
! style="background:#efdead;" width="150px" align="left" | Username(s)
! style="background:#edfead;" width="100px" align="left" | Name
! style="background:#efdead;" width="170px" align="left" | Roles
! style="background:#edfead;" width="170px" align="left" | Active project(s)
! style="background:#efdead;" width="170px" align="left" | Titles
! style="background:#edfead;" width="150px" align="left" | Location

{{dev1| [[User:Reid|Reid]] | - | Pixel Art, Scripting, Mapping, Concepts | [[User:Reid|Aurora 1.1]] | {{Board|Senior Developer}} | France }}
{{dev2| [[User:Wushin|Wushin]] | - | Server administration, programming, Pixel Art, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Professions | {{Board|Senior Developer}} | Midwest US }}
{{dev1| [[User:4144|4144]] | - | Client development | [https://manaplus.org/ ManaPlus] | {{Board|Senior Developer}} | Russia }}
{{dev2| [[User:Alige|Alige]] | - | Pixel Art, Mapping, Scripting | - | {{Board|Developer}} | France}}
{{dev1| [[User:Yubaba|Yubaba (Chicka-Maria)]] | - | Mapping, Soundscape design, SFX | - | {{Board|Developer}} | Canada}}
{{dev2| [[User:Ledmitz|Ledmitz]] | - | Soundscape design, SFX | - | {{Board|Developer}} | - }}
{{dev1| [[User:Meko|Gumi]] | - | Programming, Mapping, Scripting | [https://github.com/mekolat/tmwa/tree/magic-v3 magic-v3], Elements, Races | {{Board|Developer}} | Canada }}
{{dev2| [[User:Omatt|Omatt]] | - | Scripting | - | {{Board|Developer}} | France}}
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>kjvw2sizbjvyd0ohsdrlp89jwcdix87</sha1>
    </revision>
    <revision>
      <id>40712</id>
      <parentid>40709</parentid>
      <timestamp>2016-09-25T15:09:45Z</timestamp>
      <contributor>
        <username>WildX</username>
        <id>1896</id>
      </contributor>
      <comment>WIP</comment>
      <origin>40712</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1867" sha1="qbh1k2f0ypoh5yy09jk2azvy9l3wogh" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==

{| class="wikitable"
|+ The Mana World Team members
! Username(s)
! Titles
! Roles
! Location
|-
! Reid
| Senior Developer  || Pixel Art, Scripting, Mapping, Concepts  || France
|-
! Wushin
| Senior Developer || Server Administration, Programming, Pixel Art, Mapping, Scripting || USA (Midwest)
|-
! 4144
| Senior Developer || Client Development, Server Administration || Russia
|-
! Alige
| Developer || Pixel Art, Mapping, Scripting || France
|-
! Chicka-Maria (Yubaba) 
| Developer || Music &amp; SFX, Mapping || Canada
|-
! Ledmitz
| Developer || SFX || -
|-
! Gumi (Mekolat, Meko)
| Developer ||  	Programming, Scripting, Mapping || Canada
|-
! Omatt
| Developer || Scripting || France
|-
! WildX
| Game Master || GM, Forum Admin, Community Manager, Lore Writing || United Kingdom
|-
! MrGrey
| Game Master || GM, Eye candy || Canada
|-
! Prsm
| Game Master || GM || Canada
|-
! Veryape 
| Game Master || GM, Server Admin || Sweden
|-
!NitayandaGM
| Game Master || GM || Israel
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>qbh1k2f0ypoh5yy09jk2azvy9l3wogh</sha1>
    </revision>
    <revision>
      <id>40713</id>
      <parentid>40712</parentid>
      <timestamp>2016-09-25T15:27:30Z</timestamp>
      <contributor>
        <username>WildX</username>
        <id>1896</id>
      </contributor>
      <minor/>
      <comment>/* Developers */</comment>
      <origin>40713</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1877" sha1="28a6lbqxotwd6orbpm8t207xxtm371i" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==

{| class="wikitable"
|+ The Mana World Team members
! Username(s)
! Titles
! Roles
! Location
|-
! Reid
| Senior Developer  || Pixel Art, Scripting, Mapping, Concepts  || France
|-
! Wushin
| Senior Developer || Server Administrator, Programming, Pixel Art, Mapping, Scripting || USA (Midwest)
|-
! 4144
| Senior Developer || Client Development, Server Administrator || Russia
|-
! Alige
| Developer || Pixel Art, Mapping, Scripting || France
|-
! Chicka-Maria (Yubaba) 
| Developer || Music &amp; SFX, Mapping || Canada
|-
! Ledmitz
| Developer || SFX || -
|-
! Gumi (Mekolat, Meko)
| Developer ||  	Programming, Scripting, Mapping || Canada
|-
! Omatt
| Developer || Scripting || France
|-
! WildX
| Game Master || GM, Forum Admin, Community Manager, Lore Writing || United Kingdom
|-
! MrGrey
| Game Master || GM, ''Eye candy'' || Canada
|-
! Prsm
| Game Master || GM || Canada
|-
! Veryape 
| Game Master || GM, Server Administrator || Sweden
|-
!NitayandaGM
| Game Master || GM || Israel
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>28a6lbqxotwd6orbpm8t207xxtm371i</sha1>
    </revision>
    <revision>
      <id>40721</id>
      <parentid>40713</parentid>
      <timestamp>2016-09-26T11:27:35Z</timestamp>
      <contributor>
        <username>WildX</username>
        <id>1896</id>
      </contributor>
      <minor/>
      <comment>/* Developers */</comment>
      <origin>40721</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1877" sha1="fj15po9j7iqo1135jv1989kq8gdtzzw" xml:space="preserve">{{Meta}}
{{Category_playerinfo}}

==Developers==

{| class="wikitable"
|+ The Mana World Team members
! Username(s)
! Titles
! Roles
! Location
|-
! Reid
| Senior Developer  || Pixel Art, Scripting, Mapping, Concepts  || France
|-
! Wushin
| Senior Developer || Server Administrator, Programming, Pixel Art, Mapping, Scripting || USA (Midwest)
|-
! 4144
| Senior Developer || Client Development, Server Administrator || -
|-
! Alige
| Developer || Pixel Art, Mapping, Scripting || France
|-
! Chicka-Maria (Yubaba) 
| Developer || Music &amp; SFX, Mapping || Canada
|-
! Ledmitz
| Developer || SFX || Canada
|-
! Gumi (Mekolat, Meko)
| Developer ||  	Programming, Scripting, Mapping || Canada
|-
! Omatt
| Developer || Scripting || France
|-
! WildX
| Game Master || GM, Forum Admin, Community Manager, Lore Writing || United Kingdom
|-
! MrGrey
| Game Master || GM, ''Eye candy'' || Canada
|-
! Prsm
| Game Master || GM || Canada
|-
! Veryape 
| Game Master || GM, Server Administrator || Sweden
|-
!NitayandaGM
| Game Master || GM || Israel
|}


'''See also:'''
* [[Developer Archive]]
* [[Contributors]]
* [https://github.com/themanaworld/tmwa-client-data/blob/master/license.txt Graphic authors and contributors (license.txt)]
* [[Dev:Main|Development Home]]
* [[Joining the project]]

==Recent projects==
Most of TMW's development is shown on the forum, [https://forums.themanaworld.org/viewforum.php?f=2 subforum Development TMW].

In the past most development was done in Trello. There are still many cards there. Relevant links: [https://trello.com/themanaworld TMW Organisation], [https://trello.com/b/ojhvZu1f/content-development Content Development Board], [https://trello.com/b/rNnx513z/art-development Art Development Board].

The development organization was switched back to the forums because players rather check the forums than Trello. 


[[Category:Development]]</text>
      <sha1>fj15po9j7iqo1135jv1989kq8gdtzzw</sha1>
    </revision>
    <revision>
      <id>46103</id>
      <parentid>40721</parentid>
      <timestamp>2019-10-09T13:33:59Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Redirect to TMW Team page 2/2</comment>
      <origin>46103</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="22" sha1="diezkzm82vthgm4wo7dlulypuggqix0" xml:space="preserve">#REDIRECT [[TMW Team]]</text>
      <sha1>diezkzm82vthgm4wo7dlulypuggqix0</sha1>
    </revision>
    <revision>
      <id>59476</id>
      <parentid>46103</parentid>
      <timestamp>2024-03-27T03:56:43Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Developers]] to [[Development:Developers]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>46103</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="22" sha1="diezkzm82vthgm4wo7dlulypuggqix0" xml:space="preserve">#REDIRECT [[TMW Team]]</text>
      <sha1>diezkzm82vthgm4wo7dlulypuggqix0</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Evol-Hercules atcommands</title>
    <ns>0</ns>
    <id>8163</id>
    <redirect title="User:Alexanderlime/Evol-Hercules atcommands" />
    <revision>
      <id>33311</id>
      <timestamp>2015-03-06T14:28:08Z</timestamp>
      <contributor>
        <username>Alexanderlime</username>
        <id>2382</id>
      </contributor>
      <comment>Alexanderlime moved page [[Dev:Evol-Hercules atcommands]] to [[User:Alexanderlime/Evol-Hercules atcommands]]: Moved the page after getting meko's advice</comment>
      <origin>33311</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="57" sha1="2xn083f2mp5t2tlzx30dkogfe4mo8t2" xml:space="preserve">#REDIRECT [[User:Alexanderlime/Evol-Hercules atcommands]]</text>
      <sha1>2xn083f2mp5t2tlzx30dkogfe4mo8t2</sha1>
    </revision>
    <revision>
      <id>33313</id>
      <parentid>33311</parentid>
      <timestamp>2015-03-06T14:29:56Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>Blanked the page</comment>
      <origin>33313</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="0" sha1="phoiac9h4m842xq45sp7s6u21eteeq1" xml:space="preserve" />
      <sha1>phoiac9h4m842xq45sp7s6u21eteeq1</sha1>
    </revision>
    <revision>
      <id>33314</id>
      <parentid>33313</parentid>
      <timestamp>2015-03-06T14:30:09Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>Redirected page to [[User:Alexanderlime/Evol-Hercules atcommands]]</comment>
      <origin>33314</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="57" sha1="2xn083f2mp5t2tlzx30dkogfe4mo8t2" xml:space="preserve">#REDIRECT [[User:Alexanderlime/Evol-Hercules atcommands]]</text>
      <sha1>2xn083f2mp5t2tlzx30dkogfe4mo8t2</sha1>
    </revision>
    <revision>
      <id>59478</id>
      <parentid>33314</parentid>
      <timestamp>2024-03-27T03:56:43Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Evol-Hercules atcommands]] to [[Development:Evol-Hercules atcommands]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>33314</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="57" sha1="2xn083f2mp5t2tlzx30dkogfe4mo8t2" xml:space="preserve">#REDIRECT [[User:Alexanderlime/Evol-Hercules atcommands]]</text>
      <sha1>2xn083f2mp5t2tlzx30dkogfe4mo8t2</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Evol-Hercules server</title>
    <ns>0</ns>
    <id>8162</id>
    <redirect title="User:Alexanderlime/Evol-Hercules server" />
    <revision>
      <id>33308</id>
      <timestamp>2015-03-06T14:26:32Z</timestamp>
      <contributor>
        <username>Alexanderlime</username>
        <id>2382</id>
      </contributor>
      <comment>Alexanderlime moved page [[Dev:Evol-Hercules server]] to [[User:Alexanderlime/Evol-Hercules server]]: Decided to move it under my page after getting meko's advice</comment>
      <origin>33308</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="53" sha1="k5mp1xor7hx4ywh2icun9hnvrpf1cbe" xml:space="preserve">#REDIRECT [[User:Alexanderlime/Evol-Hercules server]]</text>
      <sha1>k5mp1xor7hx4ywh2icun9hnvrpf1cbe</sha1>
    </revision>
    <revision>
      <id>59480</id>
      <parentid>33308</parentid>
      <timestamp>2024-03-27T03:56:43Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Evol-Hercules server]] to [[Development:Evol-Hercules server]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>33308</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="53" sha1="k5mp1xor7hx4ywh2icun9hnvrpf1cbe" xml:space="preserve">#REDIRECT [[User:Alexanderlime/Evol-Hercules server]]</text>
      <sha1>k5mp1xor7hx4ywh2icun9hnvrpf1cbe</sha1>
    </revision>
  </page>
  <page>
    <title>Development:GM Commands</title>
    <ns>0</ns>
    <id>12384</id>
    <redirect title="Classic:GM Commands" />
    <revision>
      <id>50485</id>
      <timestamp>2020-01-24T02:50:36Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Jesusalva moved page [[Dev:GM Commands]] to [[Legacy:GM Commands]]: The GM commands for both servers differ and I can see someone tried to update with new server and didn't finish. Result, broken page. Move for sanity.</comment>
      <origin>50485</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="32" sha1="hy09x57nk9r3kg7nhh41nm2ks67y3id" xml:space="preserve">#REDIRECT [[Legacy:GM Commands]]</text>
      <sha1>hy09x57nk9r3kg7nhh41nm2ks67y3id</sha1>
    </revision>
    <revision>
      <id>56934</id>
      <parentid>50485</parentid>
      <timestamp>2022-12-08T02:59:00Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <comment>Text replacement - "Legacy" to "Classic"</comment>
      <origin>56934</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="33" sha1="pm7n9ti8gz17a7amgt1q3xmfhdnkyeq" xml:space="preserve">#REDIRECT [[Classic:GM Commands]]</text>
      <sha1>pm7n9ti8gz17a7amgt1q3xmfhdnkyeq</sha1>
    </revision>
    <revision>
      <id>59482</id>
      <parentid>56934</parentid>
      <timestamp>2024-03-27T03:56:43Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:GM Commands]] to [[Development:GM Commands]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>56934</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="33" sha1="pm7n9ti8gz17a7amgt1q3xmfhdnkyeq" xml:space="preserve">#REDIRECT [[Classic:GM Commands]]</text>
      <sha1>pm7n9ti8gz17a7amgt1q3xmfhdnkyeq</sha1>
    </revision>
  </page>
  <page>
    <title>Development:GM Commands/anchors</title>
    <ns>0</ns>
    <id>10080</id>
    <revision>
      <id>40523</id>
      <timestamp>2016-05-04T17:13:07Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>Created page with "&lt;table&gt; &lt;tr&gt;&lt;th&gt;Aliases&lt;/th&gt;&lt;th&gt;Anchor&lt;/th&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;hurnscald, hurns, hurn&lt;/td&gt;&lt;td&gt;009-1, 55, 37&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;nivalis, niv&lt;/td&gt;&lt;td&gt;020-1, 74, 83&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;tu..."</comment>
      <origin>40523</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="358" sha1="jdcycy40t1we8ua0p5bo4g6nrptoju6" xml:space="preserve">&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Aliases&lt;/th&gt;&lt;th&gt;Anchor&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hurnscald, hurns, hurn&lt;/td&gt;&lt;td&gt;009-1, 55, 37&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;nivalis, niv&lt;/td&gt;&lt;td&gt;020-1, 74, 83&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tulimshar, tulim, tul&lt;/td&gt;&lt;td&gt;001-1, 64, 101&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;candor, newbington, noob&lt;/td&gt;&lt;td&gt;029-1, 52, 93&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oldwizard, wizard, oldwiz&lt;/td&gt;&lt;td&gt;013-1, 41, 92&lt;/td&gt;&lt;/tr&gt;</text>
      <sha1>jdcycy40t1we8ua0p5bo4g6nrptoju6</sha1>
    </revision>
    <revision>
      <id>40524</id>
      <parentid>40523</parentid>
      <timestamp>2016-05-04T17:19:45Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <origin>40524</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="663" sha1="4qvc2dg1izg8p7iiozbk7jbsz2d424l" xml:space="preserve">&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Aliases&lt;/th&gt;&lt;th&gt;Anchor&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hurnscald, hurns, hurn&lt;/td&gt;&lt;td&gt;009-1, 55, 37&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;nivalis, niv&lt;/td&gt;&lt;td&gt;020-1, 74, 83&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tulimshar, tulim, tul&lt;/td&gt;&lt;td&gt;001-1, 64, 101&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;candor, newbington, noob&lt;/td&gt;&lt;td&gt;029-1, 52, 93&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;asphodel, swamp, swampvillage, undeadtown&lt;/td&gt;&lt;td&gt;026-1, 32, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oldwizard, wizard, oldwiz&lt;/td&gt;&lt;td&gt;013-1, 41, 92&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;desert, pachua&lt;/td&gt;&lt;td&gt;006-1, 34, 99&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;forest, katze&lt;/td&gt;&lt;td&gt;015-1, 58, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;dimondscove, dimond&lt;/td&gt;&lt;td&gt;010-2, 31, 39&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;graveyard, gy&lt;/td&gt;&lt;td&gt;027-1, 71, 87&lt;/td&gt;&lt;/tr&gt;</text>
      <sha1>4qvc2dg1izg8p7iiozbk7jbsz2d424l</sha1>
    </revision>
    <revision>
      <id>40525</id>
      <parentid>40524</parentid>
      <timestamp>2016-05-04T17:27:09Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <origin>40525</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1316" sha1="1drmlklruaxslvciwl840vkzsywjqe1" xml:space="preserve">&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Aliases&lt;/th&gt;&lt;th&gt;Anchor&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hurnscald, hurns, hurn&lt;/td&gt;&lt;td&gt;009-1, 55, 37&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;nivalis, niv&lt;/td&gt;&lt;td&gt;020-1, 74, 83&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tulimshar, tulim, tul&lt;/td&gt;&lt;td&gt;001-1, 64, 101&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;candor, newbington, noob&lt;/td&gt;&lt;td&gt;029-1, 52, 93&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;asphodel, swamp, swampvillage, undeadtown&lt;/td&gt;&lt;td&gt;026-1, 32, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oldwizard, wizard, oldwiz&lt;/td&gt;&lt;td&gt;013-1, 41, 92&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;desert, pachua&lt;/td&gt;&lt;td&gt;006-1, 34, 99&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;forest, katze&lt;/td&gt;&lt;td&gt;015-1, 58, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;dimondscove, dimond&lt;/td&gt;&lt;td&gt;010-2, 31, 39&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;graveyard, gy&lt;/td&gt;&lt;td&gt;027-1, 71, 87&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalkrukan, krukan&lt;/td&gt;&lt;td&gt;027-6, 39, 47&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalrazha, razha&lt;/td&gt;&lt;td&gt;027-7, 39, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalterogan, terogan&lt;/td&gt;&lt;td&gt;027-8, 39, 52&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmisland, eventisland, easterisland, island&lt;/td&gt;&lt;td&gt;028-1, 99, 40&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;auditorium, scene&lt;/td&gt;&lt;td&gt;028-1, 119, 69&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;theater&lt;/td&gt;&lt;td&gt;017-2, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmlounge, lounge, backstage, gm&lt;/td&gt;&lt;td&gt;017-9, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cindycave, cindy&lt;/td&gt;&lt;td&gt;031-3, 47, 26&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranite, terracave, terra&lt;/td&gt;&lt;td&gt;012-3, 448, 65&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranitesafe, terrasafe, safeterra&lt;/td&gt;&lt;td&gt;012-4, 473, 184&lt;/td&gt;&lt;/tr&gt;</text>
      <sha1>1drmlklruaxslvciwl840vkzsywjqe1</sha1>
    </revision>
    <revision>
      <id>40526</id>
      <parentid>40525</parentid>
      <timestamp>2016-05-04T17:38:49Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <origin>40526</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2144" sha1="lh9tq1hkvf6jy2h6qlk115ow3nhjfob" xml:space="preserve">It is now possible to use map aliases instead of map names.
&lt;br&gt;&lt;br&gt;

== Anchors ==
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Aliases&lt;/th&gt;&lt;th&gt;Anchor&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hurnscald, hurns, hurn&lt;/td&gt;&lt;td&gt;009-1, 55, 37&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;nivalis, niv&lt;/td&gt;&lt;td&gt;020-1, 74, 83&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tulimshar, tulim, tul&lt;/td&gt;&lt;td&gt;001-1, 64, 101&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;candor, newbington, noob&lt;/td&gt;&lt;td&gt;029-1, 52, 93&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;asphodel, swamp, swampvillage, undeadtown&lt;/td&gt;&lt;td&gt;026-1, 32, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oldwizard, wizard, oldwiz&lt;/td&gt;&lt;td&gt;013-1, 41, 92&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;desert, pachua&lt;/td&gt;&lt;td&gt;006-1, 34, 99&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;forest, katze&lt;/td&gt;&lt;td&gt;015-1, 58, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;dimondscove, dimond&lt;/td&gt;&lt;td&gt;010-2, 31, 39&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;graveyard, gy&lt;/td&gt;&lt;td&gt;027-1, 71, 87&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalkrukan, krukan&lt;/td&gt;&lt;td&gt;027-6, 39, 47&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalrazha, razha&lt;/td&gt;&lt;td&gt;027-7, 39, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalterogan, terogan&lt;/td&gt;&lt;td&gt;027-8, 39, 52&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmisland, eventisland, easterisland, island&lt;/td&gt;&lt;td&gt;028-1, 99, 40&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;auditorium, scene&lt;/td&gt;&lt;td&gt;028-1, 119, 69&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;theater&lt;/td&gt;&lt;td&gt;017-2, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmlounge, lounge, backstage, gm&lt;/td&gt;&lt;td&gt;017-9, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cindycave, cindy&lt;/td&gt;&lt;td&gt;031-3, 47, 26&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranite, terracave, terra&lt;/td&gt;&lt;td&gt;012-3, 448, 65&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranitesafe, terrasafe, safeterra&lt;/td&gt;&lt;td&gt;012-4, 473, 184&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;bluesage, blue&lt;/td&gt;&lt;td&gt;048-2, 40, 46&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;xmasinn, xmas&lt;/td&gt;&lt;td&gt;030-2, 85, 46&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;barbarians, fluffy&lt;/td&gt;&lt;td&gt;033-1, 71, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;park, porttown, farms&lt;/td&gt;&lt;td&gt;057-1, 100, 77&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hills, orum&lt;/td&gt;&lt;td&gt;017-1, 112, 49&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;batcave, bat&lt;/td&gt;&lt;td&gt;011-3, 30, 26&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;&lt;br&gt;

== Examples ==
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Command&lt;/th&gt;&lt;th&gt;Behaviour&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp 009-1&lt;/td&gt;&lt;td&gt;warps you to 009-1, at a random (x,y) location&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp hurnscald&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp 009-1 55 37&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp hurnscald 55 37&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</text>
      <sha1>lh9tq1hkvf6jy2h6qlk115ow3nhjfob</sha1>
    </revision>
    <revision>
      <id>40527</id>
      <parentid>40526</parentid>
      <timestamp>2016-05-04T17:41:58Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>/* Examples */</comment>
      <origin>40527</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2704" sha1="24engsoass2dzl21rv7xfimlql6pjwg" xml:space="preserve">It is now possible to use map aliases instead of map names.
&lt;br&gt;&lt;br&gt;

== Anchors ==
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Aliases&lt;/th&gt;&lt;th&gt;Anchor&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hurnscald, hurns, hurn&lt;/td&gt;&lt;td&gt;009-1, 55, 37&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;nivalis, niv&lt;/td&gt;&lt;td&gt;020-1, 74, 83&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tulimshar, tulim, tul&lt;/td&gt;&lt;td&gt;001-1, 64, 101&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;candor, newbington, noob&lt;/td&gt;&lt;td&gt;029-1, 52, 93&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;asphodel, swamp, swampvillage, undeadtown&lt;/td&gt;&lt;td&gt;026-1, 32, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oldwizard, wizard, oldwiz&lt;/td&gt;&lt;td&gt;013-1, 41, 92&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;desert, pachua&lt;/td&gt;&lt;td&gt;006-1, 34, 99&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;forest, katze&lt;/td&gt;&lt;td&gt;015-1, 58, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;dimondscove, dimond&lt;/td&gt;&lt;td&gt;010-2, 31, 39&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;graveyard, gy&lt;/td&gt;&lt;td&gt;027-1, 71, 87&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalkrukan, krukan&lt;/td&gt;&lt;td&gt;027-6, 39, 47&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalrazha, razha&lt;/td&gt;&lt;td&gt;027-7, 39, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalterogan, terogan&lt;/td&gt;&lt;td&gt;027-8, 39, 52&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmisland, eventisland, easterisland, island&lt;/td&gt;&lt;td&gt;028-1, 99, 40&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;auditorium, scene&lt;/td&gt;&lt;td&gt;028-1, 119, 69&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;theater&lt;/td&gt;&lt;td&gt;017-2, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmlounge, lounge, backstage, gm&lt;/td&gt;&lt;td&gt;017-9, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cindycave, cindy&lt;/td&gt;&lt;td&gt;031-3, 47, 26&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranite, terracave, terra&lt;/td&gt;&lt;td&gt;012-3, 448, 65&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranitesafe, terrasafe, safeterra&lt;/td&gt;&lt;td&gt;012-4, 473, 184&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;bluesage, blue&lt;/td&gt;&lt;td&gt;048-2, 40, 46&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;xmasinn, xmas&lt;/td&gt;&lt;td&gt;030-2, 85, 46&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;barbarians, fluffy&lt;/td&gt;&lt;td&gt;033-1, 71, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;park, porttown, farms&lt;/td&gt;&lt;td&gt;057-1, 100, 77&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hills, orum&lt;/td&gt;&lt;td&gt;017-1, 112, 49&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;batcave, bat&lt;/td&gt;&lt;td&gt;011-3, 30, 26&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;&lt;br&gt;

== Examples ==
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Command&lt;/th&gt;&lt;th&gt;Behaviour&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp 009-1&lt;/td&gt;&lt;td&gt;warps you to 009-1, at a random (x,y) location&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp hurnscald&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp 009-1 55 37&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp hurnscald 55 37&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp 009-1 PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at a random (x,y) location&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp hurnscald PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp 009-1 55 37 PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp hurnscald 55 37 PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
When using anchors, you can either use the predefined (x,y) or specify your own. If you use a map name instead (ie 009-1) then you must specify the (x,y), or else a random position is chosen.</text>
      <sha1>24engsoass2dzl21rv7xfimlql6pjwg</sha1>
    </revision>
    <revision>
      <id>40528</id>
      <parentid>40527</parentid>
      <timestamp>2016-05-04T17:42:32Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>/* Examples */</comment>
      <origin>40528</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2723" sha1="4d5jnompqq0d8vbi0rtgb85kofkcz41" xml:space="preserve">It is now possible to use map aliases instead of map names.
&lt;br&gt;&lt;br&gt;

== Anchors ==
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Aliases&lt;/th&gt;&lt;th&gt;Anchor&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hurnscald, hurns, hurn&lt;/td&gt;&lt;td&gt;009-1, 55, 37&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;nivalis, niv&lt;/td&gt;&lt;td&gt;020-1, 74, 83&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tulimshar, tulim, tul&lt;/td&gt;&lt;td&gt;001-1, 64, 101&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;candor, newbington, noob&lt;/td&gt;&lt;td&gt;029-1, 52, 93&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;asphodel, swamp, swampvillage, undeadtown&lt;/td&gt;&lt;td&gt;026-1, 32, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oldwizard, wizard, oldwiz&lt;/td&gt;&lt;td&gt;013-1, 41, 92&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;desert, pachua&lt;/td&gt;&lt;td&gt;006-1, 34, 99&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;forest, katze&lt;/td&gt;&lt;td&gt;015-1, 58, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;dimondscove, dimond&lt;/td&gt;&lt;td&gt;010-2, 31, 39&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;graveyard, gy&lt;/td&gt;&lt;td&gt;027-1, 71, 87&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalkrukan, krukan&lt;/td&gt;&lt;td&gt;027-6, 39, 47&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalrazha, razha&lt;/td&gt;&lt;td&gt;027-7, 39, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalterogan, terogan&lt;/td&gt;&lt;td&gt;027-8, 39, 52&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmisland, eventisland, easterisland, island&lt;/td&gt;&lt;td&gt;028-1, 99, 40&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;auditorium, scene&lt;/td&gt;&lt;td&gt;028-1, 119, 69&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;theater&lt;/td&gt;&lt;td&gt;017-2, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmlounge, lounge, backstage, gm&lt;/td&gt;&lt;td&gt;017-9, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cindycave, cindy&lt;/td&gt;&lt;td&gt;031-3, 47, 26&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranite, terracave, terra&lt;/td&gt;&lt;td&gt;012-3, 448, 65&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranitesafe, terrasafe, safeterra&lt;/td&gt;&lt;td&gt;012-4, 473, 184&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;bluesage, blue&lt;/td&gt;&lt;td&gt;048-2, 40, 46&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;xmasinn, xmas&lt;/td&gt;&lt;td&gt;030-2, 85, 46&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;barbarians, fluffy&lt;/td&gt;&lt;td&gt;033-1, 71, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;park, porttown, farms&lt;/td&gt;&lt;td&gt;057-1, 100, 77&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hills, orum&lt;/td&gt;&lt;td&gt;017-1, 112, 49&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;batcave, bat&lt;/td&gt;&lt;td&gt;011-3, 30, 26&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;&lt;br&gt;

== Examples ==
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Command&lt;/th&gt;&lt;th&gt;Behaviour&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp 009-1&lt;/td&gt;&lt;td&gt;warps you to 009-1, at a random (x,y) location&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp hurnscald&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp 009-1 55 37&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp hurnscald 55 37&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp 009-1 PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at a random (x,y) location&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp hurnscald PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp 009-1 55 37 PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp hurnscald 55 37 PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
When using anchors (ie "hurnscald"), you can either use the predefined (x,y) or specify your own. If you use a map name instead (ie "009-1") then you must specify the (x,y), or else a random position is chosen.</text>
      <sha1>4d5jnompqq0d8vbi0rtgb85kofkcz41</sha1>
    </revision>
    <revision>
      <id>59484</id>
      <parentid>40528</parentid>
      <timestamp>2024-03-27T03:56:43Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:GM Commands/anchors]] to [[Development:GM Commands/anchors]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>40528</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2723" sha1="4d5jnompqq0d8vbi0rtgb85kofkcz41" xml:space="preserve">It is now possible to use map aliases instead of map names.
&lt;br&gt;&lt;br&gt;

== Anchors ==
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Aliases&lt;/th&gt;&lt;th&gt;Anchor&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hurnscald, hurns, hurn&lt;/td&gt;&lt;td&gt;009-1, 55, 37&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;nivalis, niv&lt;/td&gt;&lt;td&gt;020-1, 74, 83&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tulimshar, tulim, tul&lt;/td&gt;&lt;td&gt;001-1, 64, 101&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;candor, newbington, noob&lt;/td&gt;&lt;td&gt;029-1, 52, 93&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;asphodel, swamp, swampvillage, undeadtown&lt;/td&gt;&lt;td&gt;026-1, 32, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;oldwizard, wizard, oldwiz&lt;/td&gt;&lt;td&gt;013-1, 41, 92&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;desert, pachua&lt;/td&gt;&lt;td&gt;006-1, 34, 99&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;forest, katze&lt;/td&gt;&lt;td&gt;015-1, 58, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;dimondscove, dimond&lt;/td&gt;&lt;td&gt;010-2, 31, 39&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;graveyard, gy&lt;/td&gt;&lt;td&gt;027-1, 71, 87&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalkrukan, krukan&lt;/td&gt;&lt;td&gt;027-6, 39, 47&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalrazha, razha&lt;/td&gt;&lt;td&gt;027-7, 39, 35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;generalterogan, terogan&lt;/td&gt;&lt;td&gt;027-8, 39, 52&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmisland, eventisland, easterisland, island&lt;/td&gt;&lt;td&gt;028-1, 99, 40&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;auditorium, scene&lt;/td&gt;&lt;td&gt;028-1, 119, 69&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;theater&lt;/td&gt;&lt;td&gt;017-2, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gmlounge, lounge, backstage, gm&lt;/td&gt;&lt;td&gt;017-9, 26, 23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cindycave, cindy&lt;/td&gt;&lt;td&gt;031-3, 47, 26&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranite, terracave, terra&lt;/td&gt;&lt;td&gt;012-3, 448, 65&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;terranitesafe, terrasafe, safeterra&lt;/td&gt;&lt;td&gt;012-4, 473, 184&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;bluesage, blue&lt;/td&gt;&lt;td&gt;048-2, 40, 46&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;xmasinn, xmas&lt;/td&gt;&lt;td&gt;030-2, 85, 46&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;barbarians, fluffy&lt;/td&gt;&lt;td&gt;033-1, 71, 33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;park, porttown, farms&lt;/td&gt;&lt;td&gt;057-1, 100, 77&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hills, orum&lt;/td&gt;&lt;td&gt;017-1, 112, 49&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;batcave, bat&lt;/td&gt;&lt;td&gt;011-3, 30, 26&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;&lt;br&gt;

== Examples ==
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Command&lt;/th&gt;&lt;th&gt;Behaviour&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp 009-1&lt;/td&gt;&lt;td&gt;warps you to 009-1, at a random (x,y) location&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp hurnscald&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp 009-1 55 37&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@warp hurnscald 55 37&lt;/td&gt;&lt;td&gt;warps you to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp 009-1 PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at a random (x,y) location&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp hurnscald PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp 009-1 55 37 PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;@charwarp hurnscald 55 37 PLAYER&lt;/td&gt;&lt;td&gt;warps PLAYER to 009-1, at (55,37)&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
When using anchors (ie "hurnscald"), you can either use the predefined (x,y) or specify your own. If you use a map name instead (ie "009-1") then you must specify the (x,y), or else a random position is chosen.</text>
      <sha1>4d5jnompqq0d8vbi0rtgb85kofkcz41</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Game Wiki Work</title>
    <ns>0</ns>
    <id>12383</id>
    <revision>
      <id>50468</id>
      <timestamp>2020-01-22T02:36:17Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Not complete but meh</comment>
      <origin>50468</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8146" sha1="s8xr8dck84tinbpd1f83evtpnq8k3au" xml:space="preserve">{{I18n}}
&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===

====rEvolt Server====
Pertaining to The Mana World: rEvolt.

=====Player pages=====
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, leave a link on the banner about Legacy page, in case player is looking for TMW:Legacy information.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====Recent Game Updates=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
&lt;br&gt;&lt;br&gt;
====Wiki Admin pages====

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>s8xr8dck84tinbpd1f83evtpnq8k3au</sha1>
    </revision>
    <revision>
      <id>50469</id>
      <parentid>50468</parentid>
      <timestamp>2020-01-22T02:37:23Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <comment>Translating this a fool's errand</comment>
      <origin>50469</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8137" sha1="m8nh9abxm1n6hj4720qoafyld8c8xa4" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===

====rEvolt Server====
Pertaining to The Mana World: rEvolt.

=====Player pages=====
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, leave a link on the banner about Legacy page, in case player is looking for TMW:Legacy information.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====Recent Game Updates=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
&lt;br&gt;&lt;br&gt;
====Wiki Admin pages====

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>m8nh9abxm1n6hj4720qoafyld8c8xa4</sha1>
    </revision>
    <revision>
      <id>50470</id>
      <parentid>50469</parentid>
      <timestamp>2020-01-22T02:40:23Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Remove some sections which would be too hard to maintain</comment>
      <origin>50470</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8147" sha1="5u8vcimflpyewx689rbda5epr6o2053" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, leave a link on the banner about Legacy page, in case player is looking for TMW:Legacy information.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>5u8vcimflpyewx689rbda5epr6o2053</sha1>
    </revision>
    <revision>
      <id>50472</id>
      <parentid>50470</parentid>
      <timestamp>2020-01-22T02:46:38Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Working with Git Issues</comment>
      <origin>50472</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8245" sha1="ryh9b8tn2egcbdcrjl4v6r3weqol727" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, leave a link on the banner about Legacy page, in case player is looking for TMW:Legacy information.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>ryh9b8tn2egcbdcrjl4v6r3weqol727</sha1>
    </revision>
    <revision>
      <id>50473</id>
      <parentid>50472</parentid>
      <timestamp>2020-01-22T02:48:52Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Dev:Testing_Server</comment>
      <origin>50473</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8462" sha1="mc85lhljrjq7ebyv0zl5s3lbu7bg7i4" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, leave a link on the banner about Legacy page, in case player is looking for TMW:Legacy information.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>mc85lhljrjq7ebyv0zl5s3lbu7bg7i4</sha1>
    </revision>
    <revision>
      <id>50474</id>
      <parentid>50473</parentid>
      <timestamp>2020-01-22T03:02:42Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>kytty's list</comment>
      <origin>50474</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8673" sha1="g5fqub60m0rvs16wfgpyu4ts3jiz8w2" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, leave a link on the banner about Legacy page, in case player is looking for TMW:Legacy information.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
* [[Legacy:Hamond]]
* [[Legacy:Thurstan]]
* [[Legacy:Wolfgang]]
* [[Legacy:Nicholas]]
* [[Legacy:Tondor]]
* [[Legacy:Hurnscald_Booksheld]]
* [[Legacy:Luca]]
* [[Legacy:Miriam]]
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>g5fqub60m0rvs16wfgpyu4ts3jiz8w2</sha1>
    </revision>
    <revision>
      <id>50475</id>
      <parentid>50474</parentid>
      <timestamp>2020-01-22T03:04:42Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <origin>50475</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8748" sha1="s2xf8fjx44v9nmsx1x2afv9c9vck7hm" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, leave a link on the banner about Legacy page, in case player is looking for TMW:Legacy information.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
* [[Legacy:Hamond]]
* [[Legacy:Thurstan]]
* [[Legacy:Wolfgang]]
* [[Legacy:Nicholas]]
* [[Legacy:Tondor]]
* [[Legacy:Hurnscald_Booksheld]]
* [[Legacy:Luca]]
* [[Legacy:Miriam]]
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set. -- Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>s2xf8fjx44v9nmsx1x2afv9c9vck7hm</sha1>
    </revision>
    <revision>
      <id>50476</id>
      <parentid>50475</parentid>
      <timestamp>2020-01-22T03:08:33Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <comment>At least two extensions are already available (sort of)</comment>
      <origin>50476</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8759" sha1="i5hpp3cmep4430evnv7wogmut0kp587" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, leave a link on the banner about Legacy page, in case player is looking for TMW:Legacy information.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
* [[Legacy:Hamond]]
* [[Legacy:Thurstan]]
* [[Legacy:Wolfgang]]
* [[Legacy:Nicholas]]
* [[Legacy:Tondor]]
* [[Legacy:Hurnscald_Booksheld]]
* [[Legacy:Luca]]
* [[Legacy:Miriam]]
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>i5hpp3cmep4430evnv7wogmut0kp587</sha1>
    </revision>
    <revision>
      <id>51493</id>
      <parentid>50476</parentid>
      <timestamp>2020-06-26T10:16:22Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>/* General tasks */</comment>
      <origin>51493</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8910" sha1="e7hgeyd9e2219dsz8xp69eiqbbjv39t" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, leave a link on the banner about Legacy page, in case player is looking for TMW:Legacy information.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
::Many NPCs are listed as a quest. They should be recategorized as NPC instead, and if they really contain a quest, they should be split and/or moved.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
* [[Legacy:Hamond]]
* [[Legacy:Thurstan]]
* [[Legacy:Wolfgang]]
* [[Legacy:Nicholas]]
* [[Legacy:Tondor]]
* [[Legacy:Hurnscald_Booksheld]]
* [[Legacy:Luca]]
* [[Legacy:Miriam]]
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>e7hgeyd9e2219dsz8xp69eiqbbjv39t</sha1>
    </revision>
    <revision>
      <id>51918</id>
      <parentid>51493</parentid>
      <timestamp>2020-07-14T18:48:26Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>/* Namespace Issues - Mention new {{Disambiguation}}, subject to EJlol's renaming */</comment>
      <origin>51918</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9016" sha1="hjrk7oputcu97mvzyzku9ei0bnde0ay" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====

There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
::Many NPCs are listed as a quest. They should be recategorized as NPC instead, and if they really contain a quest, they should be split and/or moved.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
* [[Legacy:Hamond]]
* [[Legacy:Thurstan]]
* [[Legacy:Wolfgang]]
* [[Legacy:Nicholas]]
* [[Legacy:Tondor]]
* [[Legacy:Hurnscald_Booksheld]]
* [[Legacy:Luca]]
* [[Legacy:Miriam]]
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;
==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>hjrk7oputcu97mvzyzku9ei0bnde0ay</sha1>
    </revision>
    <revision>
      <id>51991</id>
      <parentid>51918</parentid>
      <timestamp>2020-07-17T13:39:03Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>/* Wiki Content */ Add link to page where you can see all the pages with notes</comment>
      <origin>51991</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9109" sha1="31r7z87x7cc54hcymbyn9lnazcqds7j" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written, and Information about [[Legacy:Walkthrough]] (Including Category_Playerinfo tag) have to be added.
* [[Getting_started#Raising_your_Stats|Raising Your Stats]] must be entirely rewritten to new stats system
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Getting_started#Quick_walkthrough|Quick Walkthrough]] is duplicate data: Burn with fire and link to official Walkthrough instead.
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
  * [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Getting_started#Training_technique]] should speak about shortcut window (F8) instead.
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Getting_started#Endgame]] speaks about magic training which no longer exists. But there's scoreboards ('''@scoreboards''' command), inifinite challenge and bosses to defeat and absorb their skills with the Master Skill Book.
* [[Getting_started#Final_thoughts]] final paragraph is no longer relevant due to the new server Guild System.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [[NPCs]] need to be reestructurated and entirely rewritten. Even Legacy NPCs there might need some help, like putting them in the right category.
::Many NPCs are listed as a quest. They should be recategorized as NPC instead, and if they really contain a quest, they should be split and/or moved.
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
* [[Legacy:Hamond]]
* [[Legacy:Thurstan]]
* [[Legacy:Wolfgang]]
* [[Legacy:Nicholas]]
* [[Legacy:Tondor]]
* [[Legacy:Hurnscald_Booksheld]]
* [[Legacy:Luca]]
* [[Legacy:Miriam]]
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>31r7z87x7cc54hcymbyn9lnazcqds7j</sha1>
    </revision>
    <revision>
      <id>51992</id>
      <parentid>51991</parentid>
      <timestamp>2020-07-17T13:44:02Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>Removed some todo's</comment>
      <origin>51992</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8037" sha1="21qllujd6c7f509hmy9g5cw8mqws247" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
* [[Legacy:Hamond]]
* [[Legacy:Thurstan]]
* [[Legacy:Wolfgang]]
* [[Legacy:Nicholas]]
* [[Legacy:Tondor]]
* [[Legacy:Hurnscald_Booksheld]]
* [[Legacy:Luca]]
* [[Legacy:Miriam]]
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>21qllujd6c7f509hmy9g5cw8mqws247</sha1>
    </revision>
    <revision>
      <id>53635</id>
      <parentid>51992</parentid>
      <timestamp>2021-01-11T02:34:07Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <comment>/* Legacy Server */  Updated needs for the Legacy NPC's, as it was just a list of ones that needed pages, and was missing a lot of details.</comment>
      <origin>53635</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8590" sha1="4s47v1nawdftl7bfv6y5cag0el2ipn3" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
'''Here are the steps for what is required on this''' [[Legacy:NPCs_(all)]] '''page.'''

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page.
&lt;br&gt;&lt;br&gt;

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>4s47v1nawdftl7bfv6y5cag0el2ipn3</sha1>
    </revision>
    <revision>
      <id>53636</id>
      <parentid>53635</parentid>
      <timestamp>2021-01-11T02:48:47Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <comment>/* Legacy Server */</comment>
      <origin>53636</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9370" sha1="kzptbxyruadbjqsubh7emtpo3jjtpx8" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page.
&lt;br&gt;
[[Legacy:Navigation]]''' needs these steps done to it'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>kzptbxyruadbjqsubh7emtpo3jjtpx8</sha1>
    </revision>
    <revision>
      <id>53637</id>
      <parentid>53636</parentid>
      <timestamp>2021-01-11T03:20:40Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <comment>/* Legacy Server */ Updated needs.</comment>
      <origin>53637</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9715" sha1="7biieszc3h0rdy07k24jwpekgxjto0l" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 11 January 2021)&lt;/small&gt;''&lt;br&gt;
'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page.
&lt;br&gt;
[[Legacy:Navigation]]''' needs these steps done to it'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]]'''Things required'''
# Ensure all items are added
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.

End of list on this date.
____

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>7biieszc3h0rdy07k24jwpekgxjto0l</sha1>
    </revision>
    <revision>
      <id>53680</id>
      <parentid>53637</parentid>
      <timestamp>2021-01-11T07:10:47Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <comment>/* Legacy Server */ Added more things to do</comment>
      <origin>53680</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10451" sha1="50bk02zwufbczygtok81thm86x7vjk5" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 11 January 2021)&lt;/small&gt;''&lt;br&gt;
'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to.
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>50bk02zwufbczygtok81thm86x7vjk5</sha1>
    </revision>
    <revision>
      <id>53719</id>
      <parentid>53680</parentid>
      <timestamp>2021-01-12T07:42:43Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <minor/>
      <comment>/* Legacy Server */ Minor information update</comment>
      <origin>53719</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10950" sha1="i9kfz5b63eamuhzi1rwu0y7kjct1tnv" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 11 January 2021)&lt;/small&gt;''&lt;br&gt;
'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section.)''&lt;/small&gt;

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to.
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Legacy:Geography]] and/or [[Legacy:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>i9kfz5b63eamuhzi1rwu0y7kjct1tnv</sha1>
    </revision>
    <revision>
      <id>53727</id>
      <parentid>53719</parentid>
      <timestamp>2021-01-12T08:53:30Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <minor/>
      <comment>/* Legacy Server */ Formatting, and other info added</comment>
      <origin>53727</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11655" sha1="m67g9k7t4oo9kicqclo98yadxhsmws7" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 11 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Legacy wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to.
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Legacy:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Legacy:Geography]] and/or [[Legacy:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>m67g9k7t4oo9kicqclo98yadxhsmws7</sha1>
    </revision>
    <revision>
      <id>54060</id>
      <parentid>53727</parentid>
      <timestamp>2021-01-26T13:43:36Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <comment>/* Legacy Server */ Updated todo list for Legacy wiki</comment>
      <origin>54060</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11964" sha1="djnfvxh4acs3zqvyx67wv8sigqujk2e" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 27 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Legacy wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Ensure there is a "[[Category:Legacy]]" and a "Category:LegacyNPC]]" typed in the "See Also" or "Other info" section.
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added - for example, [[Legacy:Gwyneth|Gwyneth]] has items in her shop that aren't on the database, at least on the wiki.
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Use the quest format, however that will be. This includes the template.
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to.
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Legacy:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Legacy:Geography]] and/or [[Legacy:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>djnfvxh4acs3zqvyx67wv8sigqujk2e</sha1>
    </revision>
    <revision>
      <id>54061</id>
      <parentid>54060</parentid>
      <timestamp>2021-01-26T13:51:45Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <comment>More updates.</comment>
      <origin>54061</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12422" sha1="3k3f1b28xpxbwy4r5ckgayiu28cf7vn" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 27 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Legacy wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Ensure there is a "[[Category:Legacy]]" and a "Category:LegacyNPC]]" typed in the "See Also" or "Other info" section.
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added - for example, [[Legacy:Gwyneth|Gwyneth]] has items in her shop that aren't on the database, at least on the wiki.
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Use the quest format, however that will be. This includes the template.
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to.
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Legacy:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Legacy:Geography]] and/or [[Legacy:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
[[Special:Categories]] '''Things that need doing'''
# Sifting through the categories and ensuring that none of the pages go to dead links. Ensure that they are filed correctly in the categories first, before moving. I noticed that there are many "Legacy" categories with no proper page. So check to see if there is an existing page, or whether the existing page needs updating. Otherwise, a page will need adding for the Legacy categories. Check first.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>3k3f1b28xpxbwy4r5ckgayiu28cf7vn</sha1>
    </revision>
    <revision>
      <id>54066</id>
      <parentid>54061</parentid>
      <timestamp>2021-01-26T14:20:58Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <minor/>
      <comment>/* Legacy Server */ Added note about template adding the categories</comment>
      <origin>54066</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12490" sha1="qen7v7d8anrq90safk4oiburca82nrt" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 27 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Legacy wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Ensure there is a "[[Category:Legacy]]" and a "Category:LegacyNPC]]" typed in the "See Also" or "Other info" section.
::This is not needed when using the [[Template:LegacyNPC|template]]
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added - for example, [[Legacy:Gwyneth|Gwyneth]] has items in her shop that aren't on the database, at least on the wiki.
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Use the quest format, however that will be. This includes the template.
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to.
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Legacy:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Legacy:Geography]] and/or [[Legacy:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
[[Special:Categories]] '''Things that need doing'''
# Sifting through the categories and ensuring that none of the pages go to dead links. Ensure that they are filed correctly in the categories first, before moving. I noticed that there are many "Legacy" categories with no proper page. So check to see if there is an existing page, or whether the existing page needs updating. Otherwise, a page will need adding for the Legacy categories. Check first.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.
&lt;br&gt;&lt;br&gt;

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>qen7v7d8anrq90safk4oiburca82nrt</sha1>
    </revision>
    <revision>
      <id>54071</id>
      <parentid>54066</parentid>
      <timestamp>2021-01-26T16:09:23Z</timestamp>
      <contributor>
        <username>WildX</username>
        <id>1896</id>
      </contributor>
      <comment>Add tutorials section with first video link</comment>
      <origin>54071</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12688" sha1="1bzjlgm59wudz3blye2hjoqtm4cklpu" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 27 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Legacy wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Ensure there is a "[[Category:Legacy]]" and a "Category:LegacyNPC]]" typed in the "See Also" or "Other info" section.
::This is not needed when using the [[Template:LegacyNPC|template]]
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added - for example, [[Legacy:Gwyneth|Gwyneth]] has items in her shop that aren't on the database, at least on the wiki.
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Use the quest format, however that will be. This includes the template.
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to.
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Legacy:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Legacy:Geography]] and/or [[Legacy:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
[[Special:Categories]] '''Things that need doing'''
# Sifting through the categories and ensuring that none of the pages go to dead links. Ensure that they are filed correctly in the categories first, before moving. I noticed that there are many "Legacy" categories with no proper page. So check to see if there is an existing page, or whether the existing page needs updating. Otherwise, a page will need adding for the Legacy categories. Check first.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.

===Editing tips and tutorials===
* Check out [https://www.youtube.com/watch?v=-rGU6iH3h4w&amp;t Speiros' guide to editing NPC pages] to understand NPC page templates and get a feel for wiki editing in general.

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>1bzjlgm59wudz3blye2hjoqtm4cklpu</sha1>
    </revision>
    <revision>
      <id>54180</id>
      <parentid>54071</parentid>
      <timestamp>2021-01-28T08:29:25Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <comment>small addition to things to do.</comment>
      <origin>54180</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12782" sha1="6byaxqxyuyicusxigf051w08zvgqlgl" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 28 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Legacy wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to.
# Any missing NPC's need adding to the page.
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Ensure there is a "[[Category:Legacy]]" and a "Category:LegacyNPC]]" typed in the "See Also" or "Other info" section.
::This is not needed when using the [[Template:LegacyNPC|template]]
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added - for example, [[Legacy:Gwyneth|Gwyneth]] has items in her shop that aren't on the database, at least on the wiki.
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Use the quest format, however that will be. This includes the template.
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to (for example, [[Legacy:Love Triangle Quest|Love Triangle Quest]] seems to have been in error).
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Legacy:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Legacy:Geography]] and/or [[Legacy:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
[[Special:Categories]] '''Things that need doing'''
# Sifting through the categories and ensuring that none of the pages go to dead links. Ensure that they are filed correctly in the categories first, before moving. I noticed that there are many "Legacy" categories with no proper page. So check to see if there is an existing page, or whether the existing page needs updating. Otherwise, a page will need adding for the Legacy categories. Check first.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.

===Editing tips and tutorials===
* Check out [https://www.youtube.com/watch?v=-rGU6iH3h4w&amp;t Speiros' guide to editing NPC pages] to understand NPC page templates and get a feel for wiki editing in general.

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>6byaxqxyuyicusxigf051w08zvgqlgl</sha1>
    </revision>
    <revision>
      <id>54688</id>
      <parentid>54180</parentid>
      <timestamp>2021-02-16T04:39:59Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <comment>/* Legacy Server */ Updates.</comment>
      <origin>54688</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12854" sha1="0n1xhmegk83azykcgjtiyu8uvqcejb0" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://webchat.freenode.net/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://webchat.freenode.net/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 16 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Legacy wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to. ''(Completed on 16 February 2021)''
# Any missing NPC's need adding to the page. ''(Completed on 16 February 2021)''
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Ensure there is a "[[Category:Legacy]]" and a "Category:LegacyNPC]]" typed in the "See Also" or "Other info" section.
::This is not needed when using the [[Template:LegacyNPC|template]]
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added - for example, [[Legacy:Gwyneth|Gwyneth]] has items in her shop that aren't on the database, at least on the wiki.
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Use the quest format, however that will be. This includes the template.
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to (for example, [[Legacy:Love Triangle Quest|Love Triangle Quest]] seems to have been in error).
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Legacy:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Legacy:Geography]] and/or [[Legacy:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
[[Special:Categories]] '''Things that need doing'''
# Sifting through the categories and ensuring that none of the pages go to dead links. Ensure that they are filed correctly in the categories first, before moving. I noticed that there are many "Legacy" categories with no proper page. So check to see if there is an existing page, or whether the existing page needs updating. Otherwise, a page will need adding for the Legacy categories. Check first.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.

===Editing tips and tutorials===
* Check out [https://www.youtube.com/watch?v=-rGU6iH3h4w&amp;t Speiros' guide to editing NPC pages] to understand NPC page templates and get a feel for wiki editing in general.

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>0n1xhmegk83azykcgjtiyu8uvqcejb0</sha1>
    </revision>
    <revision>
      <id>54996</id>
      <parentid>54688</parentid>
      <timestamp>2021-05-28T21:27:30Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <comment>Text replacement - "webchat.freenode.net" to "web.libera.chat"</comment>
      <origin>54996</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12844" sha1="bhes9cfka8meo3qr8if6xvw4ifm7yue" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://web.libera.chat/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Legacy: Namespace where appropriate.
* Move pages on Dev: Namespace to Legacy: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Legacy Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Legacy information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Legacy:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Legacy:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Legacy Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Legacy's version (can use both Legacy: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Legacy and rEvolt are different. Dev pages only relevant to Legacy can be safely moved to Legacy: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Legacy Server; Therefore, redirects from Dev: to Legacy: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Legacy Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Legacy Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://web.libera.chat/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Legacy Server=====
''&lt;small&gt;(edited by Speiros, 16 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Legacy wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Legacy:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to. ''(Completed on 16 February 2021)''
# Any missing NPC's need adding to the page. ''(Completed on 16 February 2021)''
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Ensure there is a "[[Category:Legacy]]" and a "Category:LegacyNPC]]" typed in the "See Also" or "Other info" section.
::This is not needed when using the [[Template:LegacyNPC|template]]
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Legacy:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Legacy:Items]] '''Things required'''
# Ensure all items are added - for example, [[Legacy:Gwyneth|Gwyneth]] has items in her shop that aren't on the database, at least on the wiki.
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Legacy:Quests]] '''Things required'''
# Ensure all quests are added
# Use the quest format, however that will be. This includes the template.
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Legacy:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to (for example, [[Legacy:Love Triangle Quest|Love Triangle Quest]] seems to have been in error).
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Legacy:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Legacy:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Legacy:Geography]] and/or [[Legacy:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
[[Special:Categories]] '''Things that need doing'''
# Sifting through the categories and ensuring that none of the pages go to dead links. Ensure that they are filed correctly in the categories first, before moving. I noticed that there are many "Legacy" categories with no proper page. So check to see if there is an existing page, or whether the existing page needs updating. Otherwise, a page will need adding for the Legacy categories. Check first.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.

===Editing tips and tutorials===
* Check out [https://www.youtube.com/watch?v=-rGU6iH3h4w&amp;t Speiros' guide to editing NPC pages] to understand NPC page templates and get a feel for wiki editing in general.

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>bhes9cfka8meo3qr8if6xvw4ifm7yue</sha1>
    </revision>
    <revision>
      <id>56321</id>
      <parentid>54996</parentid>
      <timestamp>2022-12-07T20:51:43Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <comment>Text replacement - "Legacy" to "Classic"</comment>
      <origin>56321</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12878" sha1="h3u3oxf5lpvrfgbp0zarzlh1pyzdpt2" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://web.libera.chat/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Classic: Namespace where appropriate.
* Move pages on Dev: Namespace to Classic: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Classic Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Classic information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Classic:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Classic:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Classic Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Classic's version (can use both Classic: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Classic and rEvolt are different. Dev pages only relevant to Classic can be safely moved to Classic: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Classic Server; Therefore, redirects from Dev: to Classic: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Classic Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Classic Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://web.libera.chat/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Classic Server=====
''&lt;small&gt;(edited by Speiros, 16 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Classic wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Classic:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to. ''(Completed on 16 February 2021)''
# Any missing NPC's need adding to the page. ''(Completed on 16 February 2021)''
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Ensure there is a "[[Category:Classic]]" and a "Category:ClassicNPC]]" typed in the "See Also" or "Other info" section.
::This is not needed when using the [[Template:ClassicNPC|template]]
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Classic:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Classic:Items]] '''Things required'''
# Ensure all items are added - for example, [[Classic:Gwyneth|Gwyneth]] has items in her shop that aren't on the database, at least on the wiki.
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Classic:Quests]] '''Things required'''
# Ensure all quests are added
# Use the quest format, however that will be. This includes the template.
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Classic:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to (for example, [[Classic:Love Triangle Quest|Love Triangle Quest]] seems to have been in error).
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Classic:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Classic:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Classic:Geography]] and/or [[Classic:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
[[Special:Categories]] '''Things that need doing'''
# Sifting through the categories and ensuring that none of the pages go to dead links. Ensure that they are filed correctly in the categories first, before moving. I noticed that there are many "Classic" categories with no proper page. So check to see if there is an existing page, or whether the existing page needs updating. Otherwise, a page will need adding for the Classic categories. Check first.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.

===Editing tips and tutorials===
* Check out [https://www.youtube.com/watch?v=-rGU6iH3h4w&amp;t Speiros' guide to editing NPC pages] to understand NPC page templates and get a feel for wiki editing in general.

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>h3u3oxf5lpvrfgbp0zarzlh1pyzdpt2</sha1>
    </revision>
    <revision>
      <id>59486</id>
      <parentid>56321</parentid>
      <timestamp>2024-03-27T03:56:43Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Game Wiki Work]] to [[Development:Game Wiki Work]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>56321</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12878" sha1="h3u3oxf5lpvrfgbp0zarzlh1pyzdpt2" xml:space="preserve">&lt;div style="background-color: #FFBFBF; text-align: center; border: 1px solid #BF4000; margin-bottom: 10px;"&gt;
'''Please read before working with/on this page:'''

This page is used as an overview of things that need to be done (added, updated, etc.) in '''this wiki only'''. Please keep it as clean and updated as possible. You can always ask on [https://web.libera.chat/?channels=#themanaworld IRC] and/or on our [https://forums.themanaworld.org forum] if you don't understand something. For bigger changes on important pages, it's recommended that you ask. Also keep in mind that new players read the wiki and often take it as a first impression. Thank you.
&lt;/div&gt;


'''Note:''' Most points in the [[Things to do#Player pages|Player pages]] section can be edited by everyone, while other pages, like dev pages, usually need more technical know-how.

'''So please feel free to help!'''

PS. This only covers '''the wiki''' and have absolutely no relation with game development or whatsoever.


==Wiki Content==
&lt;br&gt;
===To-Do===
&lt;!-- PLEASE ADD POINTS PLAYERS CAN DO WITHOUT TECHNICAL KNOWLEDGE FIRST --&gt;
* [[Screenshots]]: Place images in correct year and add images from forum to fill in missing years

&lt;br&gt;
Pertaining to The Mana World: rEvolt.

=====Namespace Issues=====
* Pages made for unreleased items from page references.
* Move pages on Main Namespace to Classic: Namespace where appropriate.
* Move pages on Dev: Namespace to Classic: Namespace where appropriate.
* Move pages on rEvolt namespace to main namespace. There's no need to leave redirects behind.

Important notes:
* When moving pages from Main Namespace to Classic Namespace, leave a redirect behind.
* When writing a page which was previously a redirect, please use &lt;nowiki&gt;{{Disambiguation}}
&lt;/nowiki&gt; tag, in case player is looking for TMW:Classic information.
  - Forcing players to go back to Google or use Search bars is counter-productive and SEO-harmful.
* If you prefer, you can build the page on rEvolt: namespace, and configure main page to look like [[Player Groups|This one]]
* Keep in mind The Mana World have two servers, pretty much like Ragnarok have Classic and Renewal servers. Albeit the former is fated to die due to sheer lack of maintenance, prepare the wiki assuming both servers will run forever.
&lt;br&gt;&lt;br&gt;

=====General tasks=====
There are many new updates to the wiki at present, so instead of mentioning them one by one, here is a brief description. They are not in chronological order.  Some are still under construction or repair.
* Confirmation that all items have a page.
* Confirmation that all monsters have a page.
* Confirmation that all NPCs that are linked to exist and haven't been replaced, and that their coordinates are correct.
* Pictures are up-to-date.


* [[Walkthrough]] must be written
* Information about '''@tutorial''', the ingame 101 book, should be added
* [[Stats]] page must be redone as well, refer to [http://irowiki.org/wiki/Stats iRO Wiki] for more imperative information on how they're working.
* [[Warrior]], [[Archer]] and [[Mage]] must be written with new gameplay mechanics (mage class might be the hardest to write at this point)
* [[Magic]] needs a link to [[Classic:Magic]] for the confused/lost players. At the moment, it is not possible to write this page.
* [[Skills]] is very, very similar. Almost the same thing. Need input from Developers....
* [[Quests]] is severely incomplete. The '''@qdebug''' command on Test Server allows a quick insight of the quests currently available and their stages.
* [[Item Reference]] - Must be written, see [https://cacic.tmw2.org/items The Automatic Item DB reader]
* [[Monster Reference]] - Must be written, see [https://gitlab.com/evol/evol-tools/blob/master/wiki/redesign.py this script]
* [https://gitlab.com/evol/evol-web/issues/4 Pages are needed]
* [https://gitlab.com/evol/evol-web/issues/3 Pages are outdated]
* [[Classic:Game_Masters]] is invalid (The Mana World namespace version shall prevail), and its subpage (Events) can be safely moved to "The Mana World" namespace as well.
* [[Dev:Windows10]] is only relevant for Classic Server
* [[Translators]] must be updated to Transifex links.

Also checkout pages that link to the note template: [[Special:WhatLinksHere/Template:Note]]
&lt;br&gt;&lt;br&gt;

=====Dev pages=====
* [[Dev:Monster Design]] and [[Dev:Item db.txt]] probably should be archived
* [[Map development]] - Archive the Classic's version (can use both Classic: as Archive: namespaces) and rewrite with new map conventions (which only Micksha knows)
* [[GM Commands]] and [[User:Jesusalva/GM]] could be merged; But can get messy quickly. Changes to GM Commands are also rarely announced, which makes updating these a burden.
* Mark-up Hercules documentation [https://github.com/HerculesWS/Hercules/tree/master/doc Hercules Docs] - or just replace our documentation pages with link to those.
* Or use [https://gitlab.com/evol/evol-docs/tree/master] our own documentation fork which is way more up-to-date than official Hercules' one.
* [[Dev:ToDo]] should probably be made in a #REDIRECT to GitLab milestones page.
* Proper [[Reporting Bugs]] instructions
* [[Dev:SFX]] can be replaced with the [https://gitlab.com/evol/evol-all/issues/77 Sound Design Documentation]
* [[Dev:Main]] Need to be divided because Development workflow for Classic and rEvolt are different. Dev pages only relevant to Classic can be safely moved to Classic: namespace leaving a temporary redirect behind.
* There's no present interest in actively developing Classic Server; Therefore, redirects from Dev: to Classic: are not required.
* [[Dev:Working_With_Git]] needs info about merge conflicts and gitlab specifics (Merge Requests)
* [[Dev:Testing_Server]] has been reestructured, both on Classic Test Server as on Official Test Server (LTS have @debug and inheirs GM structure from Classic Official Server, OTS have @commands and only two GM groups)
&lt;br&gt;&lt;br&gt;

=====Manaplus=====
* Help with [http://manaplus.org/start Manaplus Wiki]
* There's a huge list of ManaPlus improvements in dire need.
* There's also the idea of rewriting the client for Mobile (ie. deprecate Guichan)
* PM 4144 in [https://web.libera.chat/?channels=#themanaworld IRC] or on the [https://forums.themanaworld.org/ucp.php?i=pm&amp;mode=compose&amp;u=4982 Forums] for an account or information about ManaPlus.
&lt;br&gt;&lt;br&gt;

=====Classic Server=====
''&lt;small&gt;(edited by Speiros, 16 January 2021)&lt;/small&gt;''&lt;br&gt;
This is an updated list of changes or requirements needed for the Classic wiki. If there are others, please add them here too. Also, please use the [[Dev_talk:Game_Wiki_Work|discussion]] page to talk about changes. 

&lt;br&gt;'''Here are the steps for what is required on the '''[[Classic:NPCs_(all)]]''' page.'''
&lt;br&gt; &lt;small&gt;''(I am currently working on this section)''&lt;/small&gt;

# All dead links need a page to go to. ''(Completed on 16 February 2021)''
# Any missing NPC's need adding to the page. ''(Completed on 16 February 2021)''
# All NPC's need an individual page (some exceptions where multiple NPC's have one page).
# All NPC's need to follow the same format as all other NPC's with a "Y" in the "PP" column. Shops are a little different, but open up a shop NPC with a "Y" on it, and follow the format.
# After these things, go over them again, and add the NPC template, adjusting the template if necessary to ensure it covers all needs.
# Ensure there is a "[[Category:Classic]]" and a "Category:ClassicNPC]]" typed in the "See Also" or "Other info" section.
::This is not needed when using the [[Template:ClassicNPC|template]]
# Each NPC checked to ensure these bits of information are correct:
## Correct picture
## Correct location information
## Complete list of quests to each NPC
## Good spelling, and easy-to-follow instructions
# Once this is confirmed, the column "PP" can be removed from the page, as can the "Under Construction" label.
&lt;br&gt;
[[Classic:Navigation]]''' Things required'''

# Confirm there is information regarding every locality on the game in it. Currently, it seems to be missing Asphodel Moor, The Crypt, and a few others.
# Fix dead links.
# Each locality should have an individual page if there is more information for it than just a paragraph or two. Otherwise, the link should be to a sub-heading in the page from the locality. For instance, on the NPC page, it may link an NPC to a locality. This may mean changing headings in the Navigation page to ensure it can be done.
# I haven't looked at it yet, but working out a consistent format that is suitable would be good too. It has been mentioned that the layout of the maps differs from page to page, as in where on the page it is situated.
&lt;br&gt;
[[Classic:Items]] '''Things required'''
# Ensure all items are added - for example, [[Classic:Gwyneth|Gwyneth]] has items in her shop that aren't on the database, at least on the wiki.
# Ensure they are all linked to ALL the monsters, shops, quests etc in game that drop them, or sell them.
# Ensure that they are in order of value first, and alphabetically second.
&lt;br&gt;
[[Classic:Quests]] '''Things required'''
# Ensure all quests are added
# Use the quest format, however that will be. This includes the template.
# Have a walkthrough for every quest in a step-by-step fashion.
# Go through the pages, and make sure that they all have a link to all [[Classic:Monsters|Monsters]] that will be encountered in the areas that attack.
# Ensure all rewards are correct, and linked to (for example, [[Classic:Love Triangle Quest|Love Triangle Quest]] seems to have been in error).
# Ensure there is a link to all needed NPC's in the game, so that a player can find how to get there on the wiki.
&lt;br&gt;
[[Classic:Monsters]] '''Things required'''
# Ensure that the monsters are all in the table.
# Ensure that the monsters are in the table in the correct order.
# Ensure that all drops are accurate, with percentages added.
# Confirm that the pictures are up-to-date.
&lt;br&gt;
[[Classic:Shops]] '''Things required'''
# Ensure that all shops are in the list.
# Remove information that seems doubled up. There is a sortable list that has sufficient information on it instead of having the information twice like it presently is.
# Check that the shop items and prices are correctly stated.
# Ensure all links go to the legacy game, and not the new one.
# Once completed, go to each NPC, and add a link at the bottom under "Other info", or however it is worded.
&lt;br&gt;
[[Classic:Geography]] and/or [[Classic:Navigation]] '''Things I'd like to see/do'''
# Have all buildings named and mapped, and put into a storyline if possible. At the very least mapped, so people can identify each building by name, and know how to get there.
&lt;br&gt;
[[Special:Categories]] '''Things that need doing'''
# Sifting through the categories and ensuring that none of the pages go to dead links. Ensure that they are filed correctly in the categories first, before moving. I noticed that there are many "Classic" categories with no proper page. So check to see if there is an existing page, or whether the existing page needs updating. Otherwise, a page will need adding for the Classic categories. Check first.
&lt;br&gt;
'''*Note:''' End of list by Speiros on this date.

===Pages with frequent updates===
Some pages need to be checked frequently if they are up to date, mostly because members listed in them change or pages in their category get added or deleted frequently:
* [[Monster Reference]] and [[Items]]
* Staff Indexes, namely, [[Contributors]] tend to get outdated frequently
* [[:Category:Under Construction]] and [[:Category:Outdated]], but they're not reliable links; Don't count on them.

===Editing tips and tutorials===
* Check out [https://www.youtube.com/watch?v=-rGU6iH3h4w&amp;t Speiros' guide to editing NPC pages] to understand NPC page templates and get a feel for wiki editing in general.

==Wiki Improvement==
=====Extensions suggested=====
*&lt;s&gt;Image maps: http://www.mediawiki.org/wiki/Extension:ImageMap It would help developers and players to have a better world overview, and a different quest access as well.&lt;/s&gt;
*Javascript: http://www.mediawiki.org/wiki/Extension:Javascript Manage multiple JavaScript files imports from one place. (It would allow such things as a javascript character stats calculator...) ''not priority 1''
*&lt;s&gt;Spoilers: http://www.mediawiki.org/wiki/Extension:Spoilers The Spoilers extension adds a spoiler tag that will hide a block of text. The spoiler button's show/hide message can be customized for each set.&lt;/s&gt; Use https://www.mediawiki.org/wiki/Manual:Collapsible_elements instead.
* Variables: https://www.mediawiki.org/wiki/Extension:Variables The Variables extension allows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.

[[Category:Development]]</text>
      <sha1>h3u3oxf5lpvrfgbp0zarzlh1pyzdpt2</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Git repository</title>
    <ns>0</ns>
    <id>3609</id>
    <revision>
      <id>10677</id>
      <timestamp>2008-11-11T19:42:21Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Maybe this is becoming way too much text...</comment>
      <origin>10677</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3975" sha1="fn2qstubebzro77cjeqovavulsn4fya" xml:space="preserve">This page provides some information about our switch to git (which we're slowly trying to make, starting with the tmwserv project). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

With git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. It uses ssh's private/public key authentication for identifying committers.

* '''Our project page:''' http://gitorious.org/projects/tmwserv

On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new 'svn checkout'). For development purposes you should clone the "Push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>fn2qstubebzro77cjeqovavulsn4fya</sha1>
    </revision>
    <revision>
      <id>10678</id>
      <parentid>10677</parentid>
      <timestamp>2008-11-11T19:48:47Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <minor/>
      <comment>/* Pushing */</comment>
      <origin>10678</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3979" sha1="ltzodq79upyet12arqh9sef02n5oq13" xml:space="preserve">This page provides some information about our switch to git (which we're slowly trying to make, starting with the tmwserv project). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

With git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. It uses ssh's private/public key authentication for identifying committers.

* '''Our project page:''' http://gitorious.org/projects/tmwserv

On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new 'svn checkout'). For development purposes you should clone the "Push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>ltzodq79upyet12arqh9sef02n5oq13</sha1>
    </revision>
    <revision>
      <id>10680</id>
      <parentid>10678</parentid>
      <timestamp>2008-11-11T21:48:06Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* The primary repository */ add project page for eAthena data</comment>
      <origin>10680</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4065" sha1="fmd7udnyz3017kg2i9ms1rsh6d2pmjx" xml:space="preserve">This page provides some information about our switch to git (which we're slowly trying to make, starting with the tmwserv project). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

With git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. It uses ssh's private/public key authentication for identifying committers.

* '''TMWServ project page:''' http://gitorious.org/projects/tmwserv
* '''eAthena data project page:''' http://gitorious.org/projects/tmw-eathena-data

On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new 'svn checkout'). For development purposes you should clone the "Push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>fmd7udnyz3017kg2i9ms1rsh6d2pmjx</sha1>
    </revision>
    <revision>
      <id>10681</id>
      <parentid>10680</parentid>
      <timestamp>2008-11-12T07:51:35Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Some more words on initial setup and why we're using Gitorious this way</comment>
      <origin>10681</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5297" sha1="devoedlta88br5bt9o0yf7dcxdxgvhd" xml:space="preserve">This page provides some information about our switch to git (which we're slowly trying to make, starting with the tmwserv and server-data projects). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. It uses ssh's private/public key authentication for identifying committers.

* '''TMWServ project page:''' http://gitorious.org/projects/tmwserv
* '''eAthena data project page:''' http://gitorious.org/projects/tmw-eathena-data

On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new 'svn checkout'). For development purposes you should clone the "Push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/clone&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>devoedlta88br5bt9o0yf7dcxdxgvhd</sha1>
    </revision>
    <revision>
      <id>10682</id>
      <parentid>10681</parentid>
      <timestamp>2008-11-12T12:56:38Z</timestamp>
      <contributor>
        <username>Crush2</username>
        <id>1261</id>
      </contributor>
      <minor/>
      <comment>format</comment>
      <origin>10682</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5296" sha1="ltzc8br5f5zpcr8x4jvjihrdqbtuyi8" xml:space="preserve">This page provides some information about our switch to git (which we're slowly trying to make, starting with the tmwserv and server-data projects). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. It uses ssh's private/public key authentication for identifying committers.

* '''TMWServ project page:''' http://gitorious.org/projects/tmwserv
* '''eAthena data project page:''' http://gitorious.org/projects/tmw-eathena-data

On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new 'svn checkout'). For development purposes you should clone the "Push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>ltzc8br5f5zpcr8x4jvjihrdqbtuyi8</sha1>
    </revision>
    <revision>
      <id>10683</id>
      <parentid>10682</parentid>
      <timestamp>2008-11-12T20:17:24Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* Initial setup */ Add eAthena server</comment>
      <origin>10683</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5375" sha1="gh7qm7avpn4qn0v92tswj3qrcdqe0ic" xml:space="preserve">This page provides some information about our switch to git (which we're slowly trying to make, starting with the tmwserv and server-data projects). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. It uses ssh's private/public key authentication for identifying committers.

* '''TMWServ project page:''' http://gitorious.org/projects/tmwserv
* '''eAthena server project page:''' http://gitorious.org/projects/tmw-eathena
* '''eAthena data project page:''' http://gitorious.org/projects/tmw-eathena-data

On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new 'svn checkout'). For development purposes you should clone the "Push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>gh7qm7avpn4qn0v92tswj3qrcdqe0ic</sha1>
    </revision>
    <revision>
      <id>10684</id>
      <parentid>10683</parentid>
      <timestamp>2008-11-12T21:25:17Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* Initial setup */ Add client data project</comment>
      <origin>10684</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5438" sha1="r1f6egd0zpqr5yk3mxkcgzu5wrwmryr" xml:space="preserve">This page provides some information about our switch to git (which we're slowly trying to make, starting with the tmwserv and server-data projects). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. It uses ssh's private/public key authentication for identifying committers.

* '''TMW client data:''' http://gitorious.org/projects/tmwdata
* '''TMWServ project page:''' http://gitorious.org/projects/tmwserv
* '''eAthena server project page:''' http://gitorious.org/projects/tmw-eathena
* '''eAthena data project page:''' http://gitorious.org/projects/tmw-eathena-data

On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new 'svn checkout'). For development purposes you should clone the "Push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>r1f6egd0zpqr5yk3mxkcgzu5wrwmryr</sha1>
    </revision>
    <revision>
      <id>10686</id>
      <parentid>10684</parentid>
      <timestamp>2008-11-13T03:10:43Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* Initial setup */ reorg projects and add clone urls</comment>
      <origin>10686</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5940" sha1="phsbjld3fc1i0j97k1gy86u91i7skrf" xml:space="preserve">This page provides some information about our switch to git (which we're slowly trying to make, starting with the tmwserv and server-data projects). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. It uses ssh's private/public key authentication for identifying committers.

* '''TMW client data:'''
:Project page: http://gitorious.org/projects/tmwdata
:Clone URLS:
::git://gitorious.org/tmwdata/mainline.git
::http://git.gitorious.org/tmwdata/mainline.git
* '''TMWServ project page:'''
:Project page: http://gitorious.org/projects/tmwserv
:Clone URLS:
::git://gitorious.org/tmwserv/mainline.git
::http://git.gitorious.org/tmwserv/mainline.git
* '''eAthena server project page:'''
:Project page: http://gitorious.org/projects/tmw-eathena
:Clone URLS:
::git://gitorious.org/tmw-eathena/mainline.git
::http://git.gitorious.org/tmw-eathena/mainline.git
* '''eAthena data project page:'''
:Project page: http://gitorious.org/projects/tmw-eathena-data
:Clone URLS:
::git://gitorious.org/tmw-eathena-data/mainline.git
::http://git.gitorious.org/tmw-eathena-data/mainline.git

On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new 'svn checkout'). For development purposes you should clone the "Push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>phsbjld3fc1i0j97k1gy86u91i7skrf</sha1>
    </revision>
    <revision>
      <id>10687</id>
      <parentid>10686</parentid>
      <timestamp>2008-11-13T10:04:03Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <comment>/* Initial setup */ Move around a little + push urls</comment>
      <origin>10687</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6126" sha1="8qv8xe59eu4b6r8qotsxr99lxs9l7g2" xml:space="preserve">This page provides some information about our switch to git (which we're slowly trying to make, starting with the tmwserv and server-data projects). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

* '''TMW client data:'''
:Project page: http://gitorious.org/projects/tmwdata
:Clone URLs:
::git://gitorious.org/tmwdata/mainline.git
::http://git.gitorious.org/tmwdata/mainline.git
:Push URL: git@gitorious.org:tmwdata/mainline.git
* '''TMWServ:'''
:Project page: http://gitorious.org/projects/tmwserv
:Clone URLs:
::git://gitorious.org/tmwserv/mainline.git
::http://git.gitorious.org/tmwserv/mainline.git
:Push URL: git@gitorious.org:tmwserv/mainline.git
* '''eAthena server:'''
:Project page: http://gitorious.org/projects/tmw-eathena
:Clone URLs:
::git://gitorious.org/tmw-eathena/mainline.git
::http://git.gitorious.org/tmw-eathena/mainline.git
:Push URL: git@gitorious.org:tmw-eathena/mainline.git
* '''eAthena data:'''
:Project page: http://gitorious.org/projects/tmw-eathena-data
:Clone URLs:
::git://gitorious.org/tmw-eathena-data/mainline.git
::http://git.gitorious.org/tmw-eathena-data/mainline.git
:Push URL: git@gitorious.org:tmw-eathena-data/mainline.git

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>8qv8xe59eu4b6r8qotsxr99lxs9l7g2</sha1>
    </revision>
    <revision>
      <id>10696</id>
      <parentid>10687</parentid>
      <timestamp>2008-11-13T22:07:46Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Updates</comment>
      <origin>10696</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6300" sha1="gm39bbiuvr2veqgcmdbh0kkshg3w6oi" xml:space="preserve">This page provides some information about our switch to git (only tmwweb and tmwwebsite remain to be switched). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

* '''TMW client:'''
:Project page: http://gitorious.org/projects/tmw
:Clone URLs:
::git://gitorious.org/tmw/mainline.git
::http://git.gitorious.org/tmw/mainline.git
:Push URL: git@gitorious.org:tmw/mainline.git
* '''TMW client data:'''
:Project page: http://gitorious.org/projects/tmwdata
:Clone URLs:
::git://gitorious.org/tmwdata/mainline.git
::http://git.gitorious.org/tmwdata/mainline.git
:Push URL: git@gitorious.org:tmwdata/mainline.git
* '''TMWServ:'''
:Project page: http://gitorious.org/projects/tmwserv
:Clone URLs:
::git://gitorious.org/tmwserv/mainline.git
::http://git.gitorious.org/tmwserv/mainline.git
:Push URL: git@gitorious.org:tmwserv/mainline.git
* '''eAthena server:'''
:Project page: http://gitorious.org/projects/tmw-eathena
:Clone URLs:
::git://gitorious.org/tmw-eathena/mainline.git
::http://git.gitorious.org/tmw-eathena/mainline.git
:Push URL: git@gitorious.org:tmw-eathena/mainline.git
* '''eAthena data:'''
:Project page: http://gitorious.org/projects/tmw-eathena-data
:Clone URLs:
::git://gitorious.org/tmw-eathena-data/mainline.git
::http://git.gitorious.org/tmw-eathena-data/mainline.git
:Push URL: git@gitorious.org:tmw-eathena-data/mainline.git

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>gm39bbiuvr2veqgcmdbh0kkshg3w6oi</sha1>
    </revision>
    <revision>
      <id>10698</id>
      <parentid>10696</parentid>
      <timestamp>2008-11-14T08:38:58Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>A bit less text by linking to project page from title</comment>
      <origin>10698</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6230" sha1="11b03kcvmpro3ogmlhzmyv42a64pyyz" xml:space="preserve">This page provides some information about our switch to git (only tmwweb and tmwwebsite remain to be switched). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, everybody has his own repository. But of course we will keep a central repository through which we cooperate. This central repository is currently hosted at [http://gitorious.org/ gitorious.org], a friendly website that is also open source. On Gitorious you can have multiple repositories for each project. The main one (and I suggest we keep just one for the moment) is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

* '''[http://gitorious.org/projects/tmw TMW client]'''
:Clone URLs:
::git://gitorious.org/tmw/mainline.git
::http://git.gitorious.org/tmw/mainline.git
:Push URL: git@gitorious.org:tmw/mainline.git
* '''[http://gitorious.org/projects/tmwdata TMW client data]'''
:Clone URLs:
::git://gitorious.org/tmwdata/mainline.git
::http://git.gitorious.org/tmwdata/mainline.git
:Push URL: git@gitorious.org:tmwdata/mainline.git
* '''[http://gitorious.org/projects/tmwserv TMWServ]'''
:Clone URLs:
::git://gitorious.org/tmwserv/mainline.git
::http://git.gitorious.org/tmwserv/mainline.git
:Push URL: git@gitorious.org:tmwserv/mainline.git
* '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
:Clone URLs:
::git://gitorious.org/tmw-eathena/mainline.git
::http://git.gitorious.org/tmw-eathena/mainline.git
:Push URL: git@gitorious.org:tmw-eathena/mainline.git
* '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
:Clone URLs:
::git://gitorious.org/tmw-eathena-data/mainline.git
::http://git.gitorious.org/tmw-eathena-data/mainline.git
:Push URL: git@gitorious.org:tmw-eathena-data/mainline.git

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>11b03kcvmpro3ogmlhzmyv42a64pyyz</sha1>
    </revision>
    <revision>
      <id>10699</id>
      <parentid>10698</parentid>
      <timestamp>2008-11-14T21:21:30Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Updated list of projects</comment>
      <origin>10699</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6598" sha1="qr6ywdr6ap5dw0orxc25bzrx839g56h" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>qr6ywdr6ap5dw0orxc25bzrx839g56h</sha1>
    </revision>
    <revision>
      <id>10700</id>
      <parentid>10699</parentid>
      <timestamp>2008-11-15T03:36:14Z</timestamp>
      <contributor>
        <username>Octalot</username>
        <id>1267</id>
      </contributor>
      <origin>10700</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6807" sha1="1krer7ux9e09tn6gupqmx9lhcqoj4kx" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>1krer7ux9e09tn6gupqmx9lhcqoj4kx</sha1>
    </revision>
    <revision>
      <id>10701</id>
      <parentid>10700</parentid>
      <timestamp>2008-11-15T16:20:46Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added a section about working on the 0.0 branch</comment>
      <origin>10701</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7520" sha1="mi4o9fetq67fdtr2fm2d3so3nvhe864" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

=== The TMW 0.0.x client ===

The 0.0 client may seem a bit hidden, but it exists as a branch just like with Subversion. To continue working on this client you need to checkout the branch and create your own local branch to work on it. This goes as follows:

 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ cd tmw
 $ git checkout -b 0.0 origin/0.0

With the last command, a new local branch called 0.0 is created. Since it was based on the 0.0 branch in origin (the repository on Gitorious), it will automatically track this remote branch. This means that when you do &lt;code&gt;git pull&lt;/code&gt;, git will attempt to automatically merge the latest changes available from this branch with your local 0.0 branch.

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO</text>
      <sha1>mi4o9fetq67fdtr2fm2d3so3nvhe864</sha1>
    </revision>
    <revision>
      <id>10702</id>
      <parentid>10701</parentid>
      <timestamp>2008-11-15T16:35:11Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added some commands and apps that are good to know about</comment>
      <origin>10702</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8956" sha1="8vimyvxobhx8ac42iba8nfisl2ztfyf" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

=== The TMW 0.0.x client ===

The 0.0 client may seem a bit hidden, but it exists as a branch just like with Subversion. To continue working on this client you need to checkout the branch and create your own local branch to work on it. This goes as follows:

 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ cd tmw
 $ git checkout -b 0.0 origin/0.0

With the last command, a new local branch called 0.0 is created. Since it was based on the 0.0 branch in origin (the repository on Gitorious), it will automatically track this remote branch. This means that when you do &lt;code&gt;git pull&lt;/code&gt;, git will attempt to automatically merge the latest changes available from this branch with your local 0.0 branch.

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

TODO

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.</text>
      <sha1>8vimyvxobhx8ac42iba8nfisl2ztfyf</sha1>
    </revision>
    <revision>
      <id>10733</id>
      <parentid>10702</parentid>
      <timestamp>2008-11-16T17:39:38Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>/* Resolving conflicts */</comment>
      <origin>10733</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9365" sha1="8w7fjhlxnvusfjyy5c2mjmwxtit0fok" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

=== The TMW 0.0.x client ===

The 0.0 client may seem a bit hidden, but it exists as a branch just like with Subversion. To continue working on this client you need to checkout the branch and create your own local branch to work on it. This goes as follows:

 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ cd tmw
 $ git checkout -b 0.0 origin/0.0

With the last command, a new local branch called 0.0 is created. Since it was based on the 0.0 branch in origin (the repository on Gitorious), it will automatically track this remote branch. This means that when you do &lt;code&gt;git pull&lt;/code&gt;, git will attempt to automatically merge the latest changes available from this branch with your local 0.0 branch.

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.</text>
      <sha1>8w7fjhlxnvusfjyy5c2mjmwxtit0fok</sha1>
    </revision>
    <revision>
      <id>10738</id>
      <parentid>10733</parentid>
      <timestamp>2008-11-16T19:29:23Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added links to Atom feeds for commits on master branches</comment>
      <origin>10738</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9977" sha1="4qnhf4l06c0m2le64cnu4f2dx1o60n5" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

=== The TMW 0.0.x client ===

The 0.0 client may seem a bit hidden, but it exists as a branch just like with Subversion. To continue working on this client you need to checkout the branch and create your own local branch to work on it. This goes as follows:

 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ cd tmw
 $ git checkout -b 0.0 origin/0.0

With the last command, a new local branch called 0.0 is created. Since it was based on the 0.0 branch in origin (the repository on Gitorious), it will automatically track this remote branch. This means that when you do &lt;code&gt;git pull&lt;/code&gt;, git will attempt to automatically merge the latest changes available from this branch with your local 0.0 branch.

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.</text>
      <sha1>4qnhf4l06c0m2le64cnu4f2dx1o60n5</sha1>
    </revision>
    <revision>
      <id>10752</id>
      <parentid>10738</parentid>
      <timestamp>2008-11-17T08:56:58Z</timestamp>
      <contributor>
        <username>Exceptionfault</username>
        <id>1227</id>
      </contributor>
      <minor/>
      <comment>added lineending issue under msysgit</comment>
      <origin>10752</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10424" sha1="qcezu2nm1o4p0b1tp4d71w7o8q1cy2d" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

=== The TMW 0.0.x client ===

The 0.0 client may seem a bit hidden, but it exists as a branch just like with Subversion. To continue working on this client you need to checkout the branch and create your own local branch to work on it. This goes as follows:

 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ cd tmw
 $ git checkout -b 0.0 origin/0.0

With the last command, a new local branch called 0.0 is created. Since it was based on the 0.0 branch in origin (the repository on Gitorious), it will automatically track this remote branch. This means that when you do &lt;code&gt;git pull&lt;/code&gt;, git will attempt to automatically merge the latest changes available from this branch with your local 0.0 branch.

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice, that all files seem to have changed after doing a fresh clone, this discussion should help you: [http://code.google.com/p/msysgit/issues/detail?id=83]. Find your global git configuration file, normally somewhere under c:\programs\git\etc\gitconfig, and set the parameter ''autocrlf'' in the ''core'' section to ''false''.</text>
      <sha1>qcezu2nm1o4p0b1tp4d71w7o8q1cy2d</sha1>
    </revision>
    <revision>
      <id>10753</id>
      <parentid>10752</parentid>
      <timestamp>2008-11-17T08:59:15Z</timestamp>
      <contributor>
        <username>Exceptionfault</username>
        <id>1227</id>
      </contributor>
      <minor/>
      <comment>/* git on Windows */</comment>
      <origin>10753</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10477" sha1="h9ygxb6v6x6hprq5bd3gydbfp3la3ip" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

=== The TMW 0.0.x client ===

The 0.0 client may seem a bit hidden, but it exists as a branch just like with Subversion. To continue working on this client you need to checkout the branch and create your own local branch to work on it. This goes as follows:

 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ cd tmw
 $ git checkout -b 0.0 origin/0.0

With the last command, a new local branch called 0.0 is created. Since it was based on the 0.0 branch in origin (the repository on Gitorious), it will automatically track this remote branch. This means that when you do &lt;code&gt;git pull&lt;/code&gt;, git will attempt to automatically merge the latest changes available from this branch with your local 0.0 branch.

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice, that all files seem to have changed after doing a fresh clone, this discussion should help you: [http://code.google.com/p/msysgit/issues/detail?id=83]. Find your global git configuration file, normally somewhere under c:\programs\git\etc\gitconfig, and set the parameter ''autocrlf'' in the ''core'' section to ''false''. Then remove you last clone and do a nwe fresh clone.</text>
      <sha1>h9ygxb6v6x6hprq5bd3gydbfp3la3ip</sha1>
    </revision>
    <revision>
      <id>10796</id>
      <parentid>10753</parentid>
      <timestamp>2008-11-19T22:48:19Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* Initial setup */ Add tmwserver-data and tmwart projects</comment>
      <origin>10796</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10955" sha1="74odg4hbicszfkadkj6s80islx069i6" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

=== The TMW 0.0.x client ===

The 0.0 client may seem a bit hidden, but it exists as a branch just like with Subversion. To continue working on this client you need to checkout the branch and create your own local branch to work on it. This goes as follows:

 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ cd tmw
 $ git checkout -b 0.0 origin/0.0

With the last command, a new local branch called 0.0 is created. Since it was based on the 0.0 branch in origin (the repository on Gitorious), it will automatically track this remote branch. This means that when you do &lt;code&gt;git pull&lt;/code&gt;, git will attempt to automatically merge the latest changes available from this branch with your local 0.0 branch.

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice, that all files seem to have changed after doing a fresh clone, this discussion should help you: [http://code.google.com/p/msysgit/issues/detail?id=83]. Find your global git configuration file, normally somewhere under c:\programs\git\etc\gitconfig, and set the parameter ''autocrlf'' in the ''core'' section to ''false''. Then remove you last clone and do a nwe fresh clone.</text>
      <sha1>74odg4hbicszfkadkj6s80islx069i6</sha1>
    </revision>
    <revision>
      <id>10802</id>
      <parentid>10796</parentid>
      <timestamp>2008-11-20T23:54:10Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Added note about shallow clone</comment>
      <origin>10802</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11343" sha1="mop76qh21yxhj222a4e47n2i4wzc3xf" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

=== The TMW 0.0.x client ===

The 0.0 client may seem a bit hidden, but it exists as a branch just like with Subversion. To continue working on this client you need to checkout the branch and create your own local branch to work on it. This goes as follows:

 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ cd tmw
 $ git checkout -b 0.0 origin/0.0

With the last command, a new local branch called 0.0 is created. Since it was based on the 0.0 branch in origin (the repository on Gitorious), it will automatically track this remote branch. This means that when you do &lt;code&gt;git pull&lt;/code&gt;, git will attempt to automatically merge the latest changes available from this branch with your local 0.0 branch.

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice, that all files seem to have changed after doing a fresh clone, this discussion should help you: [http://code.google.com/p/msysgit/issues/detail?id=83]. Find your global git configuration file, normally somewhere under c:\programs\git\etc\gitconfig, and set the parameter ''autocrlf'' in the ''core'' section to ''false''. Then remove you last clone and do a nwe fresh clone.</text>
      <sha1>mop76qh21yxhj222a4e47n2i4wzc3xf</sha1>
    </revision>
    <revision>
      <id>10847</id>
      <parentid>10802</parentid>
      <timestamp>2008-11-29T20:20:09Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Separated repository for TMW eAthena client</comment>
      <origin>10847</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11573" sha1="k65goib7k6f3w0k0lzn8ttmz5x4qwf0" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw/repos/eathena TMW eAthena client]'''
| git://gitorious.org/tmw/eathena.git
| git@gitorious.org:tmw/eathena.git
| [http://gitorious.org/projects/tmw/repos/eathena/logs/0.0/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

=== The TMW 0.0.x client ===

The 0.0 client may seem a bit hidden, but it exists as a branch just like with Subversion. To continue working on this client you need to checkout the branch and create your own local branch to work on it. This goes as follows:

 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ cd tmw
 $ git checkout -b 0.0 origin/0.0

With the last command, a new local branch called 0.0 is created. Since it was based on the 0.0 branch in origin (the repository on Gitorious), it will automatically track this remote branch. This means that when you do &lt;code&gt;git pull&lt;/code&gt;, git will attempt to automatically merge the latest changes available from this branch with your local 0.0 branch.

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice, that all files seem to have changed after doing a fresh clone, this discussion should help you: [http://code.google.com/p/msysgit/issues/detail?id=83]. Find your global git configuration file, normally somewhere under c:\programs\git\etc\gitconfig, and set the parameter ''autocrlf'' in the ''core'' section to ''false''. Then remove you last clone and do a nwe fresh clone.</text>
      <sha1>k65goib7k6f3w0k0lzn8ttmz5x4qwf0</sha1>
    </revision>
    <revision>
      <id>10861</id>
      <parentid>10847</parentid>
      <timestamp>2008-11-30T21:36:35Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Removed obsolete info, this client has its own git repository now</comment>
      <origin>10861</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10860" sha1="6iyzq9x1kjihb72v3n8g6ucfcw489yb" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw/repos/eathena TMW eAthena client]'''
| git://gitorious.org/tmw/eathena.git
| git@gitorious.org:tmw/eathena.git
| [http://gitorious.org/projects/tmw/repos/eathena/logs/0.0/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice, that all files seem to have changed after doing a fresh clone, this discussion should help you: [http://code.google.com/p/msysgit/issues/detail?id=83]. Find your global git configuration file, normally somewhere under c:\programs\git\etc\gitconfig, and set the parameter ''autocrlf'' in the ''core'' section to ''false''. Then remove you last clone and do a nwe fresh clone.</text>
      <sha1>6iyzq9x1kjihb72v3n8g6ucfcw489yb</sha1>
    </revision>
    <revision>
      <id>11243</id>
      <parentid>10861</parentid>
      <timestamp>2009-01-03T14:41:32Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Adjusted note about git on Windows regarding core.autocrlf</comment>
      <origin>11243</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10894" sha1="5zxqn19hjtv0j3kmry9gp9456xxymdf" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw/repos/eathena TMW eAthena client]'''
| git://gitorious.org/tmw/eathena.git
| git@gitorious.org:tmw/eathena.git
| [http://gitorious.org/projects/tmw/repos/eathena/logs/0.0/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>5zxqn19hjtv0j3kmry9gp9456xxymdf</sha1>
    </revision>
    <revision>
      <id>11253</id>
      <parentid>11243</parentid>
      <timestamp>2009-01-06T03:27:03Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>inital description of &lt;code&gt;git format-patch&lt;/code&gt;</comment>
      <origin>11253</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11504" sha1="3rfar43bbip6unnzpi2gzvimmlktr8f" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw/repos/eathena TMW eAthena client]'''
| git://gitorious.org/tmw/eathena.git
| git@gitorious.org:tmw/eathena.git
| [http://gitorious.org/projects/tmw/repos/eathena/logs/0.0/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>3rfar43bbip6unnzpi2gzvimmlktr8f</sha1>
    </revision>
    <revision>
      <id>11802</id>
      <parentid>11253</parentid>
      <timestamp>2009-03-07T20:18:30Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* Initial setup */ Make sure the push URL is identified as devs only</comment>
      <origin>11802</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11522" sha1="h2ssmlbj0pqsjuw470vypvg28hch5so" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw/repos/eathena TMW eAthena client]'''
| git://gitorious.org/tmw/eathena.git
| git@gitorious.org:tmw/eathena.git
| [http://gitorious.org/projects/tmw/repos/eathena/logs/0.0/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>h2ssmlbj0pqsjuw470vypvg28hch5so</sha1>
    </revision>
    <revision>
      <id>11803</id>
      <parentid>11802</parentid>
      <timestamp>2009-03-09T17:54:15Z</timestamp>
      <contributor>
        <username>Terlmann</username>
        <id>1534</id>
      </contributor>
      <origin>11803</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12579" sha1="sd35wrcstuegdmzee8eufy0i84wsmjp" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
|This branch contains the(to be) fully migrated and merged future client for TMW
|-
| '''[http://gitorious.org/projects/tmw/repos/eathena TMW eAthena client]'''
| git://gitorious.org/tmw/eathena.git
| git@gitorious.org:tmw/eathena.git
| [http://gitorious.org/projects/tmw/repos/eathena/logs/0.0/feed.atom Atom]
|-
|This branch contains the old, current(downloadable from TMW site) client.
This branch contains code from the old client. To allow connections to the old servers , it is being migrated into the new client, allowing the new client to connect to both servers.
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
|This branch contains the universal client data set used by the new client and the eathena client.
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
|This branch contains the new homebrew SUPERDUPER server code.
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
|This branch contains the new server's data files.
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
|This branch contains the code for eAthena, a server written to emulate Ragnarok Online.
It's full of bugs, so the new tmw server will be used to replace it.
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
|This branch contains the server data for the eathena client.
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|-
|this branch contains experimental art concepts that have nothing to do whatsoever 
with actual client content, and in no way represent anything you will ever see in the game or are related to any experimental art concepts that might be in the game eventually.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>sd35wrcstuegdmzee8eufy0i84wsmjp</sha1>
    </revision>
    <revision>
      <id>11804</id>
      <parentid>11803</parentid>
      <timestamp>2009-03-09T21:14:21Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* Initial setup */ fix layout of table and descriptions</comment>
      <origin>11804</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12157" sha1="bhlbuuxlyxb09oi7q5ww3mrckw6zzy8" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the(to be) fully migrated and merged future client for The Mana World
|-
| '''[http://gitorious.org/projects/tmw/repos/eathena TMW eAthena client]'''
| git://gitorious.org/tmw/eathena.git
| git@gitorious.org:tmw/eathena.git
| [http://gitorious.org/projects/tmw/repos/eathena/logs/0.0/feed.atom Atom]
|-
|colspan=4|This branch contains the old, current client.
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>bhlbuuxlyxb09oi7q5ww3mrckw6zzy8</sha1>
    </revision>
    <revision>
      <id>11879</id>
      <parentid>11804</parentid>
      <timestamp>2009-03-30T19:18:30Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* Initial setup */ mark the main client repository as the main one and the eathena one as "do not use" as it ha</comment>
      <origin>11879</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12219" sha1="fvq07maaaamtytw4klmikw4yq9eyvkx" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/projects/tmw/repos/eathena TMW eAthena client]''' (do not use)
| git://gitorious.org/tmw/eathena.git
| git@gitorious.org:tmw/eathena.git
| [http://gitorious.org/projects/tmw/repos/eathena/logs/0.0/feed.atom Atom]
|-
|colspan=4|This repository should only be used for reference purposes. Please use the other client repository instead for playing and developing.
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>fvq07maaaamtytw4klmikw4yq9eyvkx</sha1>
    </revision>
    <revision>
      <id>11880</id>
      <parentid>11879</parentid>
      <timestamp>2009-03-30T19:23:54Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* Initial setup */ remove push url for eAthena client</comment>
      <origin>11880</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12222" sha1="1ornhyocndd0y3jh41mtewm7lg6n29e" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/projects/tmw/repos/eathena TMW eAthena client]''' (do not use)
| git://gitorious.org/tmw/eathena.git
| (please put all changes in mainline)
| [http://gitorious.org/projects/tmw/repos/eathena/logs/0.0/feed.atom Atom]
|-
|colspan=4|This repository should only be used for reference purposes. Please use the other client repository instead for playing and developing.
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>1ornhyocndd0y3jh41mtewm7lg6n29e</sha1>
    </revision>
    <revision>
      <id>11936</id>
      <parentid>11880</parentid>
      <timestamp>2009-04-22T20:21:07Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* Initial setup */ remove eAthena client repository</comment>
      <origin>11936</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11827" sha1="r3fv8ql53650ddb9krpu3gkogpx8xpb" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw-website/mainline.git
| git@gitorious.org:tmw-website/mainline.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/projects/tmw-eathena/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>r3fv8ql53650ddb9krpu3gkogpx8xpb</sha1>
    </revision>
    <revision>
      <id>12104</id>
      <parentid>11936</parentid>
      <timestamp>2009-05-14T12:39:34Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Updated the links to the website repository</comment>
      <origin>12104</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11788" sha1="o3xfud1jwioq2n99hljgkp7wk8n1mrb" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/projects/tmw/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/projects/tmwdata/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/projects/tmwserv/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/projects/tmwserv-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/projects/tmwweb/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/projects/tmw-website/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/projects/tmw-eathena-data/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/projects/tmwart/repos/mainline/logs/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>o3xfud1jwioq2n99hljgkp7wk8n1mrb</sha1>
    </revision>
    <revision>
      <id>12144</id>
      <parentid>12104</parentid>
      <timestamp>2009-05-17T07:00:57Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <minor/>
      <comment>/* Initial setup */ Directing the atoms to the right places</comment>
      <origin>12144</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11692" sha1="53ceamtfjr4xxa3rzglri9kgrl8n2oc" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/tmwserv/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/tmwweb/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command should you your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows something similar to the ChangeLog file. Recent commits on your current branch with a list of the files the touched.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>53ceamtfjr4xxa3rzglri9kgrl8n2oc</sha1>
    </revision>
    <revision>
      <id>12303</id>
      <parentid>12144</parentid>
      <timestamp>2009-06-01T23:46:07Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <minor/>
      <comment>/* Good to know */ Wording</comment>
      <origin>12303</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11723" sha1="032nsiv07qryxzfglva5paxtsxpn1wm" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/tmwserv/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/tmwweb/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/projects/tmw-website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>032nsiv07qryxzfglva5paxtsxpn1wm</sha1>
    </revision>
    <revision>
      <id>12307</id>
      <parentid>12303</parentid>
      <timestamp>2009-06-02T00:21:16Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <minor/>
      <comment>/* Initial setup */ Forgot to change one url last time</comment>
      <origin>12307</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11714" sha1="ldzg9cng5cqwx3woru8cngrh851hxue" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/projects/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/projects/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/projects/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/tmwserv/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/projects/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/projects/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/tmwweb/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/projects/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/projects/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/projects/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>ldzg9cng5cqwx3woru8cngrh851hxue</sha1>
    </revision>
    <revision>
      <id>12490</id>
      <parentid>12307</parentid>
      <timestamp>2009-06-30T13:46:13Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>/* Initial setup */ fix gitorious links</comment>
      <origin>12490</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11642" sha1="s18gwget3n6sepcrxd5wa1by4q4agll" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/tmwserv/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/tmwweb/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-website tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>s18gwget3n6sepcrxd5wa1by4q4agll</sha1>
    </revision>
    <revision>
      <id>12526</id>
      <parentid>12490</parentid>
      <timestamp>2009-07-04T06:58:25Z</timestamp>
      <contributor>
        <username>LlubNek</username>
        <id>1604</id>
      </contributor>
      <comment>Cloning:  removed tmw-website from for statement.  Website URL is of different form from other projects.</comment>
      <origin>12526</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11630" sha1="70xd8ov8z6dlige1ff36gwp2scyhpix" xml:space="preserve">This page provides some information about our switch to git (which, as of Nov 14th, has been completed). As an initial comforting note, git really isn't so complicated as some people would have you believe. A few months ago I became familiar with distributed version control by using Mercurial, and since a few weeks we're using git at work. I think we'll benefit a lot from switching to it on the long run.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/tmwserv/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/tmwweb/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>70xd8ov8z6dlige1ff36gwp2scyhpix</sha1>
    </revision>
    <revision>
      <id>13287</id>
      <parentid>12526</parentid>
      <timestamp>2009-09-12T11:27:47Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <minor/>
      <comment>We‘ve used Git for more than half a year now</comment>
      <origin>13287</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11221" sha1="bhy1rw6lvmksenj8ryu6r0213un0daa" xml:space="preserve">== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/tmwserv/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/tmwweb/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>bhy1rw6lvmksenj8ryu6r0213un0daa</sha1>
    </revision>
    <revision>
      <id>13313</id>
      <parentid>13287</parentid>
      <timestamp>2009-09-16T18:58:05Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <minor/>
      <comment>[[Git Repository]] moved to [[Git repository]]</comment>
      <origin>13313</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11221" sha1="bhy1rw6lvmksenj8ryu6r0213un0daa" xml:space="preserve">== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/tmwserv/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/tmwweb/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>bhy1rw6lvmksenj8ryu6r0213un0daa</sha1>
    </revision>
    <revision>
      <id>13317</id>
      <parentid>13313</parentid>
      <timestamp>2009-09-16T19:10:00Z</timestamp>
      <contributor>
        <username>Kess</username>
        <id>1128</id>
      </contributor>
      <comment>/* Initial setup */ Added tmwmusic</comment>
      <origin>13317</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11481" sha1="ixkosvdqlay85ljmyysnkuani7oomzh" xml:space="preserve">== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/tmwserv/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/tmwweb/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>ixkosvdqlay85ljmyysnkuani7oomzh</sha1>
    </revision>
    <revision>
      <id>13531</id>
      <parentid>13317</parentid>
      <timestamp>2009-10-11T19:49:00Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>added introductory section</comment>
      <origin>13531</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11837" sha1="b8drdi9touzmqjy37s6552am7oxe0lc" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv TMW server]'''
| git://gitorious.org/tmwserv/mainline.git
| git@gitorious.org:tmwserv/mainline.git
| [http://gitorious.org/tmwserv/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the our own server.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmwweb TMW web frontend]'''
| git://gitorious.org/tmwweb/mainline.git
| git@gitorious.org:tmwweb/mainline.git
| [http://gitorious.org/tmwweb/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the web module for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmwserv/mainline.git tmwserv
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmwserv tmwweb tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>b8drdi9touzmqjy37s6552am7oxe0lc</sha1>
    </revision>
    <revision>
      <id>13797</id>
      <parentid>13531</parentid>
      <timestamp>2009-11-10T13:44:37Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Removed some references to relocated repositories</comment>
      <origin>13797</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11273" sha1="sidmdgmnbc814yt6m8hjon0u76fgvq6" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>sidmdgmnbc814yt6m8hjon0u76fgvq6</sha1>
    </revision>
    <revision>
      <id>13885</id>
      <parentid>13797</parentid>
      <timestamp>2009-12-09T20:22:29Z</timestamp>
      <contributor>
        <username>Kane</username>
        <id>1752</id>
      </contributor>
      <origin>13885</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11294" sha1="3ej3aiesdjpolxp06vhknt14b0wih9i" xml:space="preserve">{{Status_outdated}}

We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>3ej3aiesdjpolxp06vhknt14b0wih9i</sha1>
    </revision>
    <revision>
      <id>13886</id>
      <parentid>13885</parentid>
      <timestamp>2009-12-09T20:31:47Z</timestamp>
      <contributor>
        <username>Kane</username>
        <id>1752</id>
      </contributor>
      <origin>13886</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11536" sha1="mfngpdik52t2e42gp001ebbrz0b7tvj" xml:space="preserve">{{Status_outdated}}

'''Please note most of the information here is now out of dated, but still great for reference. I suggest you checking out the Mana Source Documentation for more info on the latest repositories.'''
http://doc.manasource.org/git_repository



We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw TMW client]'''
| git://gitorious.org/tmw/mainline.git
| git@gitorious.org:tmw/mainline.git
| [http://gitorious.org/tmw/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the client for The Mana World
|-
| '''[http://gitorious.org/tmwdata TMW client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}


Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>mfngpdik52t2e42gp001ebbrz0b7tvj</sha1>
    </revision>
    <revision>
      <id>14258</id>
      <parentid>13886</parentid>
      <timestamp>2009-12-15T20:19:46Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>Remove client and tmwserv</comment>
      <origin>14258</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="10826" sha1="t5v806hgpp98sp32dhj0f8v7myhod4t" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmwdata TMW eAthena client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data for eAthena.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>t5v806hgpp98sp32dhj0f8v7myhod4t</sha1>
    </revision>
    <revision>
      <id>14506</id>
      <parentid>14258</parentid>
      <timestamp>2010-01-06T03:39:57Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>put tmwserv-data back for now</comment>
      <origin>14506</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11121" sha1="0zdqerdgm9r9xry55gpg7ajrww7t7g0" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmwdata TMW eAthena client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data for eAthena.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>0zdqerdgm9r9xry55gpg7ajrww7t7g0</sha1>
    </revision>
    <revision>
      <id>15122</id>
      <parentid>14506</parentid>
      <timestamp>2010-06-09T06:32:01Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* Initial setup */ add Mana branding repo</comment>
      <origin>15122</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11366" sha1="olfdsneb6yhaqwu4izh1kr7lxe5oa60" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw/tmw Mana branding]'''
| git://gitorious.org/tmw/tm.git
| git@gitorious.org:tmw/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[http://gitorious.org/tmwdata TMW eAthena client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data for eAthena.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>olfdsneb6yhaqwu4izh1kr7lxe5oa60</sha1>
    </revision>
    <revision>
      <id>15123</id>
      <parentid>15122</parentid>
      <timestamp>2010-06-10T21:53:39Z</timestamp>
      <contributor>
        <username>Majinsniper</username>
        <id>1818</id>
      </contributor>
      <origin>15123</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11367" sha1="bh2lcyhv8r0f6cueg6fxwblsiqacigi" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw/tmw Mana branding]'''
| git://gitorious.org/tmw/tmw.git
| git@gitorious.org:tmw/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[http://gitorious.org/tmwdata TMW eAthena client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data for eAthena.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>bh2lcyhv8r0f6cueg6fxwblsiqacigi</sha1>
    </revision>
    <revision>
      <id>15204</id>
      <parentid>15123</parentid>
      <timestamp>2010-07-08T16:32:50Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* Commit */ Add a sample commit message</comment>
      <origin>15204</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11689" sha1="04i1xeu9stwf7sgom3zeh52ifp42sqe" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw/tmw Mana branding]'''
| git://gitorious.org/tmw/tmw.git
| git@gitorious.org:tmw/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[http://gitorious.org/tmwdata TMW eAthena client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data for eAthena.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.</text>
      <sha1>04i1xeu9stwf7sgom3zeh52ifp42sqe</sha1>
    </revision>
    <revision>
      <id>16160</id>
      <parentid>15204</parentid>
      <timestamp>2010-11-22T04:29:13Z</timestamp>
      <contributor>
        <username>Hoogli</username>
        <id>1124</id>
      </contributor>
      <origin>16160</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11712" sha1="j94jjp26x5t8p4nq15iztnlf52grjzf" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw/tmw Mana branding]'''
| git://gitorious.org/tmw/tmw.git
| git@gitorious.org:tmw/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[http://gitorious.org/tmwdata TMW eAthena client data]'''
| git://gitorious.org/tmwdata/mainline.git
| git@gitorious.org:tmwdata/mainline.git
| [http://gitorious.org/tmwdata/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the client data for eAthena.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmwserv-data TMW server data]'''
| git://gitorious.org/tmwserv-data/mainline.git
| git@gitorious.org:tmwserv-data/mainline.git
| [http://gitorious.org/tmwserv-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the data for TMWServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw-eathena-data eAthena data]'''
| git://gitorious.org/tmw-eathena-data/mainline.git
| git@gitorious.org:tmw-eathena-data/mainline.git
| [http://gitorious.org/tmw-eathena-data/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the data for our eAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
[[Category:Reference]]</text>
      <sha1>j94jjp26x5t8p4nq15iztnlf52grjzf</sha1>
    </revision>
    <revision>
      <id>18533</id>
      <parentid>16160</parentid>
      <timestamp>2011-05-17T09:05:02Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <comment>/* Initial setup */ Update links</comment>
      <origin>18533</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="11953" sha1="3b8k2odpfsm84k20tqhj2vljrsx0vee" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw/tmw Mana branding]'''
| git://gitorious.org/tmw/tmw.git
| git@gitorious.org:tmw/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[http://gitorious.org/tmw/tmwa-client-data TMW tmwAthena client data]'''
| git://gitorious.org/tmw/tmwa-client-data
| git@gitorious.org:tmw/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository has the client data for TMW's tmwAthena.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[http://gitorious.org/tmw/server-data TMW server data]'''
| git://gitorious.org/tmw/server-data.git
| git@gitorious.org:tmw/server-data.git
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw/tmwa-server-data tmwAthena data]'''
| git://gitorious.org/tmw/tmwa-server-data.git
| git@gitorious.org:tmw/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository has the data for our tmwAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
[[Category:Reference]]</text>
      <sha1>3b8k2odpfsm84k20tqhj2vljrsx0vee</sha1>
    </revision>
    <revision>
      <id>19218</id>
      <parentid>18533</parentid>
      <timestamp>2011-08-05T15:12:45Z</timestamp>
      <contributor>
        <username>Argul</username>
        <id>1858</id>
      </contributor>
      <origin>19218</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12029" sha1="hu41cdr5i9oa33iraajou66b65mjz81" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw/tmw Mana branding]'''
| git://gitorious.org/tmw/tmw.git
| git@gitorious.org:tmw/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[http://gitorious.org/tmw/tmwa-client-data TMW tmwAthena client data]'''
| git://gitorious.org/tmw/tmwa-client-data
| git@gitorious.org:tmw/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository has the client data for TMW's tmwAthena.
|-
| '''[http://gitorious.org/tmw/music TMW music]'''
| git://gitorious.org/tmw/music.git
| git@gitorious.org:tmw/music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[http://gitorious.org/tmw/server-data TMW server data]'''
| git://gitorious.org/tmw/server-data.git
| git@gitorious.org:tmw/server-data.git
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw/tmwa-server-data tmwAthena data]'''
| git://gitorious.org/tmw/tmwa-server-data.git
| git@gitorious.org:tmw/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository has the data for our tmwAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
[[Category:Reference]]</text>
      <sha1>hu41cdr5i9oa33iraajou66b65mjz81</sha1>
    </revision>
    <revision>
      <id>23672</id>
      <parentid>19218</parentid>
      <timestamp>2012-05-03T21:32:00Z</timestamp>
      <contributor>
        <username>Frost</username>
        <id>1872</id>
      </contributor>
      <comment>/* Initial setup */ Changed some tmwAthena data repos from gitorious to github</comment>
      <origin>23672</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12047" sha1="r8c0w86i8t1wvndeyp0ungmu8rvxzlb" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw/tmw Mana branding]'''
| git://gitorious.org/tmw/tmw.git
| git@gitorious.org:tmw/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| push access on request
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository has the client data for TMW's tmwAthena.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| push access on request
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw/tmwa-server-data tmwAthena data]'''
| git://gitorious.org/tmw/tmwa-server-data.git
| git@gitorious.org:tmw/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository has the data for our tmwAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
[[Category:Reference]]</text>
      <sha1>r8c0w86i8t1wvndeyp0ungmu8rvxzlb</sha1>
    </revision>
    <revision>
      <id>24696</id>
      <parentid>23672</parentid>
      <timestamp>2012-10-16T21:01:16Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <comment>/* git on Windows */</comment>
      <origin>24696</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="12868" sha1="5bqqd6m1drddxewpb5aodafdujyc7ma" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
| '''[http://gitorious.org/tmw/tmw Mana branding]'''
| git://gitorious.org/tmw/tmw.git
| git@gitorious.org:tmw/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| push access on request
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository has the client data for TMW's tmwAthena.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| push access on request
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has the background music for the client.
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|-
| '''[http://gitorious.org/tmw/website TMW website]'''
| git://gitorious.org/tmw/website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has our website.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[http://gitorious.org/tmw/tmwa-server-data tmwAthena data]'''
| git://gitorious.org/tmw/tmwa-server-data.git
| git@gitorious.org:tmw/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository has the data for our tmwAthena.
|-
| '''[http://gitorious.org/tmwart TMW Art]'''
| git://gitorious.org/tmwart/mainline.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository has some sources for our artwork.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
=== git on MacOS X ===
MacOSX is an unsix system, BSD derived. Git waorks there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer[http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later ( links are on ths same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

GitHub has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.

[[Category:Reference]]</text>
      <sha1>5bqqd6m1drddxewpb5aodafdujyc7ma</sha1>
    </revision>
    <revision>
      <id>24697</id>
      <parentid>24696</parentid>
      <timestamp>2012-10-17T16:19:10Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <comment>/* Initial setup */</comment>
      <origin>24697</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13307" sha1="g05sqcle2f74gdmaqj20dwnd4kjb14l" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@gitorious.org:tmw/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[http://gitorious.org/tmw-eathena eAthena server]'''
| git://gitorious.org/tmw-eathena/mainline.git
| git@gitorious.org:tmw-eathena/mainline.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@gitorious.org:tmw/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| push access on request
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@gitorious.org:tmwart/mainline.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| push access on request
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@gitorious.org:tmw/website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
=== git on MacOS X ===
MacOSX is an unsix system, BSD derived. Git waorks there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer[http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later ( links are on ths same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

GitHub has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.

[[Category:Reference]]</text>
      <sha1>g05sqcle2f74gdmaqj20dwnd4kjb14l</sha1>
    </revision>
    <revision>
      <id>24702</id>
      <parentid>24697</parentid>
      <timestamp>2012-10-19T22:53:47Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <comment>/* Initial setup */</comment>
      <origin>24702</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13381" sha1="sagi5ivmtxq9kx4c7si6ryghxy7gvn5" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
=== git on MacOS X ===
MacOSX is an unsix system, BSD derived. Git waorks there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer[http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later ( links are on ths same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

GitHub has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.

[[Category:Reference]]</text>
      <sha1>sagi5ivmtxq9kx4c7si6ryghxy7gvn5</sha1>
    </revision>
    <revision>
      <id>24703</id>
      <parentid>24702</parentid>
      <timestamp>2012-10-20T08:09:29Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <comment>/* Working with git */</comment>
      <origin>24703</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13679" sha1="2ii2ext87dqwjdog1yiv388t6z3y41f" xml:space="preserve">We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

[[Working With Git]]


=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
=== git on MacOS X ===
MacOSX is an unsix system, BSD derived. Git waorks there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer[http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later ( links are on ths same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

GitHub has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
===Glossary===
[[Category:Reference]]</text>
      <sha1>2ii2ext87dqwjdog1yiv388t6z3y41f</sha1>
    </revision>
    <revision>
      <id>24704</id>
      <parentid>24703</parentid>
      <timestamp>2012-10-20T08:39:19Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>24704</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13937" sha1="4vtcspcdm3qvj4hl5jpdwmrr68lii41" xml:space="preserve">{{status_construction}}
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the origina documentations at [http://git-scm.com/documentation http://git-scm.com/documentatio]n

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''Cola git gui'''

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer[http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later ( links are on ths same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

GitHub has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
===Glossary===
Branch
Clone
Commit
Fork
Merge
Patch
Pull
Push
Tree
[[Category:Reference]]</text>
      <sha1>4vtcspcdm3qvj4hl5jpdwmrr68lii41</sha1>
    </revision>
    <revision>
      <id>24705</id>
      <parentid>24704</parentid>
      <timestamp>2012-10-20T08:41:10Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <minor/>
      <comment>/* Warning */</comment>
      <origin>24705</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13937" sha1="02cqgexg7yaodk7x99zbduwxj95utfi" xml:space="preserve">{{status_construction}}
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''Cola git gui'''

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer[http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later ( links are on ths same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

GitHub has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
===Glossary===
Branch
Clone
Commit
Fork
Merge
Patch
Pull
Push
Tree
[[Category:Reference]]</text>
      <sha1>02cqgexg7yaodk7x99zbduwxj95utfi</sha1>
    </revision>
    <revision>
      <id>24706</id>
      <parentid>24705</parentid>
      <timestamp>2012-10-20T08:43:04Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <minor/>
      <comment>/* git on MacOS X */</comment>
      <origin>24706</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13938" sha1="djzx7t9uq4np9yb6g22fnqnxudpzxbd" xml:space="preserve">{{status_construction}}
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''Cola git gui'''

=== git on Windows ===

When using git on Windows you might use [http://code.google.com/p/msysgit/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

GitHub has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.

===Glossary===
Branch
Clone
Commit
Fork
Merge
Patch
Pull
Push
Tree
[[Category:Reference]]</text>
      <sha1>djzx7t9uq4np9yb6g22fnqnxudpzxbd</sha1>
    </revision>
    <revision>
      <id>24707</id>
      <parentid>24706</parentid>
      <timestamp>2012-10-20T08:47:51Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <comment>/* git on Windows */</comment>
      <origin>24707</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="13932" sha1="tn83mc68wdn2isyrrxgcuaawak2kpje" xml:space="preserve">{{status_construction}}
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''Cola git gui'''

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.

=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

GitHub has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.

===Glossary===
Branch
Clone
Commit
Fork
Merge
Patch
Pull
Push
Tree
[[Category:Reference]]</text>
      <sha1>tn83mc68wdn2isyrrxgcuaawak2kpje</sha1>
    </revision>
    <revision>
      <id>24708</id>
      <parentid>24707</parentid>
      <timestamp>2012-10-20T08:50:11Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <minor/>
      <comment>/* git on Windows */</comment>
      <origin>24708</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14005" sha1="cg1uvvhltuuevyswkzh07hj7eyphkeo" xml:space="preserve">{{status_construction}}
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''Cola git gui'''

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
Gui for windows: [http://windows.github.com/ http://windows.github.com/]

=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

GitHub has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.

===Glossary===
Branch
Clone
Commit
Fork
Merge
Patch
Pull
Push
Tree
[[Category:Reference]]</text>
      <sha1>cg1uvvhltuuevyswkzh07hj7eyphkeo</sha1>
    </revision>
    <revision>
      <id>24709</id>
      <parentid>24708</parentid>
      <timestamp>2012-10-20T16:25:11Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <comment>/* git on MacOS X */</comment>
      <origin>24709</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14358" sha1="dc7nsa5kk0lin1g7r1yw1s11fn4p00e" xml:space="preserve">{{status_construction}}
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''Cola git gui'''

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
Gui for windows: [http://windows.github.com/ http://windows.github.com/]

=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub''' has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
Branch
Clone
Commit
Fork
Merge
Patch
Pull
Push
Tree
[[Category:Reference]]</text>
      <sha1>dc7nsa5kk0lin1g7r1yw1s11fn4p00e</sha1>
    </revision>
    <revision>
      <id>24714</id>
      <parentid>24709</parentid>
      <timestamp>2012-10-20T18:43:19Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>24714</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="14871" sha1="7jujvjhqygsz9gdy5scua1jufpy3nqy" xml:space="preserve">{{status_construction}}
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to take part in the development or to create your own fork. See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on [http://gitorious.org/ gitorious.org]. Gitorious is a friendly website that is also open source. On Gitorious the main repository for each project is called ''mainline''. Once you click to the mainline repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [http://gitorious.org/search?q=category%3Athe-mana-world list of The Mana World projects] on Gitorious. The projects have different clone URLs for read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


'''Very outdated! see [[How to Develop]] for more current repositories'''

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://gitorious.org/tmw/client-data TMW client data]'''
| git://gitorious.org/tmw/client-data.git
| git@gitorious.org:tmw/client-data.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the client data for TMW's ManaServ.
|-
| '''[https://github.com/themanaworld/tmwa-server-data/ TMW server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| push access on request
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the server data for TMW's ManaServ.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
 or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on Gitorious using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
* Branch
* Clone
* Commit
* Fork
* Merge
* Patch
* Pull
* Push
* Tree

[[Category:Reference]]</text>
      <sha1>7jujvjhqygsz9gdy5scua1jufpy3nqy</sha1>
    </revision>
    <revision>
      <id>24728</id>
      <parentid>24714</parentid>
      <timestamp>2012-10-22T15:31:41Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <origin>24728</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="16222" sha1="76y9iwd9urd4glrlea6slsisqvskn6t" xml:space="preserve">{{status_construction}}
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website that is also open source. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/search?utf8=%E2%9C%93&amp;q=the%20mana%20world&amp;type=Everything&amp;repo=&amp;langOverride=&amp;start_value=1 list of The Mana World projects] on '''github'''. The projects have different fork (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://github.com/mana/mana Mana client]'''
| git://github.com/mana/mana.git 
| git@github.com:mana/mana.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the Mana client sources.
|-
| '''[http://github.com/mana/manaserv Manaserv]'''
| git://github.com/mana/manaserv.git 
| git@github.com:mana/manaserv.git
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the ManaServ server sources .
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on '''github''' using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Tree

[[Category:Reference]]</text>
      <sha1>76y9iwd9urd4glrlea6slsisqvskn6t</sha1>
    </revision>
    <revision>
      <id>24729</id>
      <parentid>24728</parentid>
      <timestamp>2012-10-22T15:44:46Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <comment>github links update for both TMW and Mana projects.</comment>
      <origin>24729</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="16143" sha1="fs51ale2hppsmd3mtyz2iif40y7x9oe" xml:space="preserve">{{status_construction}}
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website that is also open source. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://github.com/mana/mana Mana client]'''
| git://github.com/mana/mana.git 
| git@github.com:mana/mana.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the Mana client sources.
|-
| '''[http://github.com/mana/manaserv Manaserv]'''
| git://github.com/mana/manaserv.git 
| git@github.com:mana/manaserv.git
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the ManaServ server sources .
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on '''github''' using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Tree

[[Category:Reference]]</text>
      <sha1>fs51ale2hppsmd3mtyz2iif40y7x9oe</sha1>
    </revision>
    <revision>
      <id>24730</id>
      <parentid>24729</parentid>
      <timestamp>2012-10-22T18:34:21Z</timestamp>
      <contributor>
        <username>Nard</username>
        <id>1877</id>
      </contributor>
      <comment>/* Glossary */</comment>
      <origin>24730</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="16328" sha1="7udxczcf52ehhjog899v5mcbvdlbanu" xml:space="preserve">{{status_construction}}
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website that is also open source. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.


{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Push URL (Developers only)
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| git@github.com:themanaworld/tmw.git
| [http://gitorious.org/tmw/tmw.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| git@github.com:themanaworld/tmwa.git
| [http://gitorious.org/tmw-eathena/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| git@github.com:themanaworld/tmwa-server-data.git
| [https://gitorious.org/tmw/tmwa-server-data.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| git@github.com:themanaworld/tmwa-client-data.git
| [https://gitorious.org/tmw/tmwa-client-data.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| git@github.com:themanaworld/tmw-art.git
| [http://gitorious.org/tmwart/mainline/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| git@github.com:themanaworld/tmw-music.git
| [http://gitorious.org/tmw/music/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| git@github.com:themanaworld/themanaworld-website.git
| [http://gitorious.org/tmw/website/commits/master/feed.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://github.com/mana/mana Mana client]'''
| git://github.com/mana/mana.git 
| git@github.com:mana/mana.git
| [https://gitorious.org/tmw/client-data.atom Atom]
|-
|colspan=4|This repository contains the Mana client sources.
|-
| '''[http://github.com/mana/manaserv Manaserv]'''
| git://github.com/mana/manaserv.git 
| git@github.com:mana/manaserv.git
| [https://gitorious.org/tmw/server-data.atom Atom]
|-
|colspan=4|This repository contains the ManaServ server sources .
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes you should clone the "push url", but this requires that you have:

# Signed up to gitorious.org
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on Gitorious

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on '''github''' using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Reference]]</text>
      <sha1>7udxczcf52ehhjog899v5mcbvdlbanu</sha1>
    </revision>
    <revision>
      <id>24732</id>
      <parentid>24730</parentid>
      <timestamp>2012-10-23T18:38:44Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Initial setup */ Fix some stuff from the github conversion</comment>
      <origin>24732</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="16106" sha1="s7e3ky36zoh7osr5xh6hif6xlfoe0ks" xml:space="preserve">{{status_construction}}
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Manasource: Mana, Manaserv.&lt;/span&gt;
|-
| '''[http://github.com/mana/mana Mana client]'''
| git://github.com/mana/mana.git 
| [https://github.com/mana/mana/commits/master.atom Atom]
|-
|colspan=4|This repository contains the Mana client sources.
|-
| '''[http://github.com/mana/manaserv Manaserv]'''
| git://github.com/mana/manaserv.git 
| [https://github.com/mana/manaserv/commits/master.atom Atom]
|-
|colspan=4|This repository contains the ManaServ server sources .
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on '''github''' using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Reference]]</text>
      <sha1>s7e3ky36zoh7osr5xh6hif6xlfoe0ks</sha1>
    </revision>
    <revision>
      <id>26187</id>
      <parentid>24732</parentid>
      <timestamp>2013-04-16T19:23:17Z</timestamp>
      <contributor>
        <username>4144</username>
        <id>1626</id>
      </contributor>
      <comment>/* Initial setup */</comment>
      <origin>26187</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="15910" sha1="bkt7rcmozgkjeqpn29dehznwccra1f6" xml:space="preserve">{{status_construction}}
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Official client: ManaPlus.&lt;/span&gt;
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| git://gitorious.org/manaplus/manaplus.git 
| [https://gitorious.org/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on '''github''' using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Reference]]</text>
      <sha1>bkt7rcmozgkjeqpn29dehznwccra1f6</sha1>
    </revision>
    <revision>
      <id>26611</id>
      <parentid>26187</parentid>
      <timestamp>2013-06-07T13:55:15Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Jaxad0127 moved page [[Git repository]] to [[Dev:Git repository]]</comment>
      <origin>26611</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="15910" sha1="bkt7rcmozgkjeqpn29dehznwccra1f6" xml:space="preserve">{{status_construction}}
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Official client: ManaPlus.&lt;/span&gt;
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| git://gitorious.org/manaplus/manaplus.git 
| [https://gitorious.org/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

=== Cloning ===

If you simply &lt;code&gt;git clone&lt;/code&gt; the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):

 $ git clone &lt;clone_url&gt; project

If you want to have all projects in one place, you probably want to do something like this:

 $ mkdir tmw
 $ cd tmw
 $ git clone git@gitorious.org:tmw/mainline.git tmw
 $ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data
 etc.
or for all of them in one go (after the cd tmw step):
 $ for repo in  tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo  ; done

The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!

==== Shallow cloning for non-developers ====

One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:

 $ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata

== Working with git ==
=== Warning===
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

=== Commit ===

From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.

Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:

* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html

Sample commit message:
  This is the title. Keep this line short.
  
  This is a longer description of the commit, if needed. Keep these
  lines short too. A sample list:
  &lt;nowiki&gt;* Item 1&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 2&lt;/nowiki&gt;
  &lt;nowiki&gt;* Item 3&lt;/nowiki&gt;
  
  Another paragraph in the commit description. Blah blah blah.

=== Pushing ===

Once you have committed some stuff, you can push these to the repository on '''github''' using &lt;code&gt;git push&lt;/code&gt;. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).

=== Pulling ===

When you want to get the latest changes from the repository on Gitorious, you generally use &lt;code&gt;git pull&lt;/code&gt;. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).

If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use &lt;code&gt;git pull --rebase&lt;/code&gt;. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.

If you have local changes and want to update your checkout, then there are several options:

* You commit your local changes, and do a pull, optionally with --rebase.
* Or you use &lt;code&gt;git stash&lt;/code&gt; to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with &lt;code&gt;git stash apply&lt;/code&gt;.
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.

=== Resolving conflicts ===

Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use &lt;code&gt;git status&lt;/code&gt; to see which files remain in conflict and use &lt;code&gt;git add&lt;/code&gt; on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do &lt;code&gt;git rebase --continue&lt;/code&gt; instead.

=== Patch making ===

Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, &lt;code&gt;git format-patch&lt;/code&gt; will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just &lt;code&gt;git am [patch file]&lt;/code&gt; to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, &lt;code&gt;git reset --hard HEAD^&lt;/code&gt; will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.

=== Good to know ===

Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:

* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.
* '''git whatchanged''': This shows a list of all commits on the current branch similar to &lt;code&gt;git log&lt;/code&gt;, but with a list of the files that have been touched in each commit as well.
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do &lt;code&gt;git commit&lt;/code&gt;. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.

There are also additional applications that help you with using git:

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Reference]]</text>
      <sha1>bkt7rcmozgkjeqpn29dehznwccra1f6</sha1>
    </revision>
    <revision>
      <id>30733</id>
      <parentid>26611</parentid>
      <timestamp>2014-06-12T02:37:38Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* way up to date */</comment>
      <origin>30733</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9170" sha1="134qlutrg6ontm4b3l3jipet7o4olys" xml:space="preserve">
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Official client: ManaPlus.&lt;/span&gt;
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| git://gitorious.org/manaplus/manaplus.git 
| [https://gitorious.org/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page


== Working with git ==
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 
While the information included here is not false, a more up to date page has been written with the latest information:

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Reference]]</text>
      <sha1>134qlutrg6ontm4b3l3jipet7o4olys</sha1>
    </revision>
    <revision>
      <id>30734</id>
      <parentid>30733</parentid>
      <timestamp>2014-06-12T02:38:02Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <minor/>
      <comment>/* Working with git */</comment>
      <origin>30734</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9051" sha1="rw7nwqz5tlrc376bx74bp6xuhxht87t" xml:space="preserve">
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Official client: ManaPlus.&lt;/span&gt;
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| git://gitorious.org/manaplus/manaplus.git 
| [https://gitorious.org/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page


== Working with git ==
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Reference]]</text>
      <sha1>rw7nwqz5tlrc376bx74bp6xuhxht87t</sha1>
    </revision>
    <revision>
      <id>31837</id>
      <parentid>30734</parentid>
      <timestamp>2014-12-17T16:16:46Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* categorizing */</comment>
      <origin>31837</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9076" sha1="cu584tb1xtnpaftco0jfsfb99dh7cy7" xml:space="preserve">
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Official client: ManaPlus.&lt;/span&gt;
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| git://gitorious.org/manaplus/manaplus.git 
| [https://gitorious.org/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page


== Working with git ==
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Reference]]
[[Category:Development]]</text>
      <sha1>cu584tb1xtnpaftco0jfsfb99dh7cy7</sha1>
    </revision>
    <revision>
      <id>33702</id>
      <parentid>31837</parentid>
      <timestamp>2015-03-11T08:24:29Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <comment>removing category</comment>
      <origin>33702</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9053" sha1="dxmro0fx68tkkw9f8644nc32v2b9upd" xml:space="preserve">
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Official client: ManaPlus.&lt;/span&gt;
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| git://gitorious.org/manaplus/manaplus.git 
| [https://gitorious.org/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page


== Working with git ==
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Development]]</text>
      <sha1>dxmro0fx68tkkw9f8644nc32v2b9upd</sha1>
    </revision>
    <revision>
      <id>39924</id>
      <parentid>33702</parentid>
      <timestamp>2015-11-09T12:36:43Z</timestamp>
      <contributor>
        <username>Gumi</username>
        <id>2315</id>
      </contributor>
      <comment>/* Initial setup */</comment>
      <origin>39924</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9048" sha1="08zh7wv77mcg6xbv6m7w8cnaiw5mmpb" xml:space="preserve">
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.
== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Official client: ManaPlus.&lt;/span&gt;
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| https://gitlab.com/manaplus/manaplus.git 
| [https://gitlab.com/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

== Working with git ==
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Development]]</text>
      <sha1>08zh7wv77mcg6xbv6m7w8cnaiw5mmpb</sha1>
    </revision>
    <revision>
      <id>40601</id>
      <parentid>39924</parentid>
      <timestamp>2016-08-05T18:13:28Z</timestamp>
      <contributor>
        <username>Tomminator</username>
        <id>1470</id>
      </contributor>
      <origin>40601</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="9069" sha1="s93tma5gsdlsrah37a55nvgu6nfvaml" xml:space="preserve">
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Official client: ManaPlus.&lt;/span&gt;
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| https://gitlab.com/manaplus/manaplus.git 
| [https://gitlab.com/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

== Working with git ==
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Development]]</text>
      <sha1>s93tma5gsdlsrah37a55nvgu6nfvaml</sha1>
    </revision>
    <revision>
      <id>40609</id>
      <parentid>40601</parentid>
      <timestamp>2016-08-11T01:38:51Z</timestamp>
      <contributor>
        <username>4144</username>
        <id>1626</id>
      </contributor>
      <comment>remove outdated branding link</comment>
      <origin>40609</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="8875" sha1="gs45mwon8a8255swgtcssuye61pm7gd" xml:space="preserve">
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.

{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| &lt;span style="color:White; background:Sienna"&gt;TMW, TMW eAthena&lt;/span&gt;
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. 
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. 
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World. 
|-
|colspan=4|&lt;span style="color:White; background:Sienna"&gt;Official client: ManaPlus.&lt;/span&gt;
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| https://gitlab.com/manaplus/manaplus.git 
| [https://gitlab.com/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}

For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to github.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

== Working with git ==
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Development]]</text>
      <sha1>gs45mwon8a8255swgtcssuye61pm7gd</sha1>
    </revision>
    <revision>
      <id>55248</id>
      <parentid>40609</parentid>
      <timestamp>2022-01-23T19:13:30Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Remove tmwa content and update</comment>
      <origin>55248</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6710" sha1="f2da0gvx13gzammt02a0i23r2xwwoyc" xml:space="preserve">
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git  is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://gitlab.com/ gitlab.com]'''. '''gitlab''' is a friendly website. On '''gitlab''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, as well as the repositories for each project, so you can easily see the complete [https://gitlab.com/themanaworld list of The Mana World projects] on '''gitlab'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. We still host some content on [https://github.com/themanaworld GitHub] and on [https://gitlab.com/evol Evol's GitLab].

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to gitlab.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitLab
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

You can also push over HTTPS but that's not advised, and will require configuring a push token.

== Working with git ==
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] 

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Development]]</text>
      <sha1>f2da0gvx13gzammt02a0i23r2xwwoyc</sha1>
    </revision>
    <revision>
      <id>55249</id>
      <parentid>55248</parentid>
      <timestamp>2022-01-23T19:16:12Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>GitLab update</comment>
      <origin>55249</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6929" sha1="bbidwmnllmzarbz8rw46nd05k9sige8" xml:space="preserve">
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitlab.com/ GitLab] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://gitlab.com/ gitlab.com]'''. '''gitlab''' is a friendly website. On '''gitlab''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, as well as the repositories for each project, so you can easily see the complete [https://gitlab.com/themanaworld list of The Mana World projects] on '''gitlab'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. We still host some content on [https://github.com/themanaworld GitHub] and on [https://gitlab.com/evol Evol's GitLab].

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to gitlab.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitLab
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

You can also push over HTTPS but that's not advised, and will require configuring a push token.

== Working with git ==
All TMW specific repositories have been moved to github: [https://github.com/themanaworld https://github.com/themanaworld]

Most were later moved to GitLab, but not all of them: [https://gitlab.com/themanaworld https://gitlab.com/themanaworld]

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. Commiting Windows Newlines causes changes to be rejected by the linter. When encountering this problem it is usually best to consult other developers about the affected files.

GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

Both GitHab and GitLab have a Web IDE.

=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Development]]</text>
      <sha1>bbidwmnllmzarbz8rw46nd05k9sige8</sha1>
    </revision>
    <revision>
      <id>59440</id>
      <parentid>55249</parentid>
      <timestamp>2024-02-12T19:11:08Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <comment>Legacy namespace prevails</comment>
      <origin>59440</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6950" sha1="m395ksqmh83bxx3769duihla5120c3a" xml:space="preserve">{{category:outdated}}
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitlab.com/ GitLab] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://gitlab.com/ gitlab.com]'''. '''gitlab''' is a friendly website. On '''gitlab''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, as well as the repositories for each project, so you can easily see the complete [https://gitlab.com/themanaworld list of The Mana World projects] on '''gitlab'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. We still host some content on [https://github.com/themanaworld GitHub] and on [https://gitlab.com/evol Evol's GitLab].

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to gitlab.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitLab
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

You can also push over HTTPS but that's not advised, and will require configuring a push token.

== Working with git ==
All TMW specific repositories have been moved to github: [https://github.com/themanaworld https://github.com/themanaworld]

Most were later moved to GitLab, but not all of them: [https://gitlab.com/themanaworld https://gitlab.com/themanaworld]

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. Commiting Windows Newlines causes changes to be rejected by the linter. When encountering this problem it is usually best to consult other developers about the affected files.

GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

Both GitHab and GitLab have a Web IDE.

=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Development]]</text>
      <sha1>m395ksqmh83bxx3769duihla5120c3a</sha1>
    </revision>
    <revision>
      <id>59441</id>
      <parentid>59440</parentid>
      <timestamp>2024-02-13T12:58:56Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <comment>/* Working with git */ Fix missing link</comment>
      <origin>59441</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7120" sha1="igj7w94x7ls2xyke1w41hnex4kn8owt" xml:space="preserve">{{category:outdated}}
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitlab.com/ GitLab] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://gitlab.com/ gitlab.com]'''. '''gitlab''' is a friendly website. On '''gitlab''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, as well as the repositories for each project, so you can easily see the complete [https://gitlab.com/themanaworld list of The Mana World projects] on '''gitlab'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. We still host some content on [https://github.com/themanaworld GitHub] and on [https://gitlab.com/evol Evol's GitLab].

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to gitlab.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitLab
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

You can also push over HTTPS but that's not advised, and will require configuring a push token.

== Working with git ==
All TMW specific repositories have been moved to github: [https://github.com/themanaworld https://github.com/themanaworld]

Most were later moved to GitLab, but not all of them: [https://gitlab.com/themanaworld https://gitlab.com/themanaworld]

And as of 2024 everything which doesn't use GitHub Pages or GitLab Pages is on [https://git.themanaworld.org/explore/groups https://git.themanaworld.org/explore/groups]

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. Commiting Windows Newlines causes changes to be rejected by the linter. When encountering this problem it is usually best to consult other developers about the affected files.

GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

Both GitHab and GitLab have a Web IDE.

=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Development]]</text>
      <sha1>igj7w94x7ls2xyke1w41hnex4kn8owt</sha1>
    </revision>
    <revision>
      <id>59488</id>
      <parentid>59441</parentid>
      <timestamp>2024-03-27T03:56:43Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Git repository]] to [[Development:Git repository]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>59441</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7120" sha1="igj7w94x7ls2xyke1w41hnex4kn8owt" xml:space="preserve">{{category:outdated}}
==Git==

'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitlab.com/ GitLab] and [https://github.com/ github] are websites that provide free hosting of public git repositories. 
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork. 

See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.

In TMW wiki, information about Git is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. 
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.

== The primary repository ==

=== Initial setup ===


With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://gitlab.com/ gitlab.com]'''. '''gitlab''' is a friendly website. On '''gitlab''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new &lt;code&gt;svn checkout&lt;/code&gt;).

We've categorized all projects related to The Mana World, as well as the repositories for each project, so you can easily see the complete [https://gitlab.com/themanaworld list of The Mana World projects] on '''gitlab'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. We still host some content on [https://github.com/themanaworld GitHub] and on [https://gitlab.com/evol Evol's GitLab].

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

# Signed up to gitlab.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitLab
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page

You can also push over HTTPS but that's not advised, and will require configuring a push token.

== Working with git ==
All TMW specific repositories have been moved to github: [https://github.com/themanaworld https://github.com/themanaworld]

Most were later moved to GitLab, but not all of them: [https://gitlab.com/themanaworld https://gitlab.com/themanaworld]

And as of 2024 everything which doesn't use GitHub Pages or GitLab Pages is on [https://git.themanaworld.org/explore/groups https://git.themanaworld.org/explore/groups]

:::'''[[Working With Git]]'''

You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]

* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with &lt;code&gt;--all&lt;/code&gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.
* '''tig''': A textual interface, rather similar to an email reader.
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
* '''Giggle'''
* '''qgit'''
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'

=== git on Windows ===

When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable &lt;code&gt;core.autocrlf&lt;/code&gt; using &lt;code&gt;git config core.autocrlf false&lt;/code&gt;. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. Commiting Windows Newlines causes changes to be rejected by the linter. When encountering this problem it is usually best to consult other developers about the affected files.

GitHub works uses the same tools as Git.
:'''GUIs'''
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

Both GitHab and GitLab have a Web IDE.

=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
:'''GUIs'''
* '''GitHub for Mac''' github 
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]

===Glossary===
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.

* Branch
* Clone
* Commit
* Fork
* Mainline 
* Master
* Merge
* Origin
* Patch
* Pull
* Push
* Stash
* Tree

[[Category:Development]]</text>
      <sha1>igj7w94x7ls2xyke1w41hnex4kn8owt</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Guidelines</title>
    <ns>0</ns>
    <id>958</id>
    <revision>
      <id>275</id>
      <timestamp>2005-05-23T12:45:29Z</timestamp>
      <contributor>
        <username>Mra</username>
        <id>2</id>
      </contributor>
      <comment>ported Guidelines page over from old wiki</comment>
      <origin>275</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1313" sha1="1gtgbglhrkp7rchza6tn6lhsv0lsqmv" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.
*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

''-Rotonen''</text>
      <sha1>1gtgbglhrkp7rchza6tn6lhsv0lsqmv</sha1>
    </revision>
    <revision>
      <id>701</id>
      <parentid>275</parentid>
      <timestamp>2005-06-19T22:05:07Z</timestamp>
      <contributor>
        <ip>202.123.18.3</ip>
      </contributor>
      <comment>/* Concerning tiles */</comment>
      <origin>701</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="1439" sha1="n5ve3l3s0unlny0apphi6lutqsq75gn" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.
*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

''-Rotonen''
*All the tiles in a set needs some coerance:
**The direction of the light ''(Sout-West?)''
**''(Please add more guidelines)''</text>
      <sha1>n5ve3l3s0unlny0apphi6lutqsq75gn</sha1>
    </revision>
    <revision>
      <id>703</id>
      <parentid>701</parentid>
      <timestamp>2005-09-06T02:38:05Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Concerning tiles */</comment>
      <origin>703</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2152" sha1="58ykry8392gog7m7eidkgv41idio8ds" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.
*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.
*you can find the technical specifications of tilesets under [[Tileset development]]
*Please keep in mind that the mapper only got 3 layers from which 2 are under all moving objects and 1 is over all moving objects. 
*althrough we prefer high quality tiles over low quality ones, please keep in mind that we try to reassemble the look of old SNES games. so please try not to make the tiles too realistic.
*All the tiles in a set needs some coerance:
**The direction of the light (south-west for outdoor tilesets, diffuse light for indoor tilesets)
**The perspective (45Â° view angel?)
**The propotions (a character is one tile wide and two tiles high)
**The color style
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity.
**''(Please add more guidelines)''</text>
      <sha1>58ykry8392gog7m7eidkgv41idio8ds</sha1>
    </revision>
    <revision>
      <id>724</id>
      <parentid>703</parentid>
      <timestamp>2005-09-06T08:05:26Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <comment>typo</comment>
      <origin>724</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2152" sha1="1rlnmk0dwjh1o6uha12bumpf2yenaq7" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.
*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.
*you can find the technical specifications of tilesets under [[Tileset development]]
*Please keep in mind that the mapper only got 3 layers from which 2 are under all moving objects and 1 is over all moving objects. 
*althrough we prefer high quality tiles over low quality ones, please keep in mind that we try to reassemble the look of old SNES games. so please try not to make the tiles too realistic.
*All the tiles in a set needs some coerance:
**The direction of the light (south-west for outdoor tilesets, diffuse light for indoor tilesets)
**The perspective (45Â° view angle?)
**The propotions (a character is one tile wide and two tiles high)
**The color style
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity.
**''(Please add more guidelines)''</text>
      <sha1>1rlnmk0dwjh1o6uha12bumpf2yenaq7</sha1>
    </revision>
    <revision>
      <id>740</id>
      <parentid>724</parentid>
      <timestamp>2005-09-09T15:02:21Z</timestamp>
      <contributor>
        <username>ElvenProgrammer</username>
        <id>11</id>
      </contributor>
      <comment>/* Concerning tiles */ Updated guidelines</comment>
      <origin>740</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4282" sha1="opcol5cj41d2lxjw1hd79njyvvdpmv2" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings  in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid use filters such as blur.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The propotions: a character is one tile wide and two tiles high.
**The color style: avoid using weird "alien" colors (keep saturation low :P)
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif


----

All the images have been taken from the [http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools enterbrain tutorial]. I suggest every pixel artist to take a look at it since is both a good tutorial and a style reference.</text>
      <sha1>opcol5cj41d2lxjw1hd79njyvvdpmv2</sha1>
    </revision>
    <revision>
      <id>741</id>
      <parentid>740</parentid>
      <timestamp>2005-09-11T16:01:40Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <origin>741</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4453" sha1="s3vqs0xuc13inkx8ypv77l70um2socd" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings  in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid use filters such as blur.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The propotions: a character is one tile wide and two tiles high.
**The color style: avoid using weird "alien" colors (keep saturation low :P)
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif


----

All the images have been taken from the [http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools enterbrain tutorial]. I suggest every pixel artist to take a look at it since is both a good tutorial and a style reference.

Another very good tutorial in english language about pixel art is the legendary tutorial [http://tsugumo.swoo.net/tutorial/ So You Want To Be A Pixel Artist] by Tsugumo.</text>
      <sha1>s3vqs0xuc13inkx8ypv77l70um2socd</sha1>
    </revision>
    <revision>
      <id>742</id>
      <parentid>741</parentid>
      <timestamp>2005-09-11T16:24:04Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <origin>742</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4921" sha1="niy2zuaj2vajucqia6a9zxb2cxp2m9f" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The propotions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://tsugumo.swoo.net/tutorial/ So You Want To Be A Pixel Artist] by Tsugumo.
*[http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/3_01.ht Enterbrain Tutorial] ([http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools translation by google]). all the above images have been taken from this tutorial.</text>
      <sha1>niy2zuaj2vajucqia6a9zxb2cxp2m9f</sha1>
    </revision>
    <revision>
      <id>743</id>
      <parentid>742</parentid>
      <timestamp>2005-09-11T16:29:31Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Tutorials */</comment>
      <origin>743</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4833" sha1="oll5oht47qdkwx36iegoljdz9pl608l" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The propotions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://tsugumo.swoo.net/tutorial/ So You Want To Be A Pixel Artist] by Tsugumo.
*([http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools (translated by google)]). all the above images have been taken from this tutorial.</text>
      <sha1>oll5oht47qdkwx36iegoljdz9pl608l</sha1>
    </revision>
    <revision>
      <id>744</id>
      <parentid>743</parentid>
      <timestamp>2005-09-11T16:30:15Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Tutorials */</comment>
      <origin>744</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4868" sha1="8pfq7h1ghwhxebay587wab4d5qtg0hb" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The propotions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://tsugumo.swoo.net/tutorial/ So You Want To Be A Pixel Artist] by Tsugumo.
*([http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]). all the above images have been taken from this tutorial.</text>
      <sha1>8pfq7h1ghwhxebay587wab4d5qtg0hb</sha1>
    </revision>
    <revision>
      <id>745</id>
      <parentid>744</parentid>
      <timestamp>2005-09-11T16:30:41Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Tutorials */</comment>
      <origin>745</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4866" sha1="pcc2h1n8xbpe8iijpcbg75woc3ubawg" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The propotions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://tsugumo.swoo.net/tutorial/ So You Want To Be A Pixel Artist] by Tsugumo.
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.</text>
      <sha1>pcc2h1n8xbpe8iijpcbg75woc3ubawg</sha1>
    </revision>
    <revision>
      <id>746</id>
      <parentid>745</parentid>
      <timestamp>2005-09-11T16:40:38Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Concerning tiles */</comment>
      <origin>746</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4999" sha1="1kmi2xps5srzjuhnrd8jhwkyr0xven9" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The propotions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://tsugumo.swoo.net/tutorial/ So You Want To Be A Pixel Artist] by Tsugumo.
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.</text>
      <sha1>1kmi2xps5srzjuhnrd8jhwkyr0xven9</sha1>
    </revision>
    <revision>
      <id>2020</id>
      <parentid>746</parentid>
      <timestamp>2005-09-11T16:40:59Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Concerning tiles */</comment>
      <origin>2020</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5003" sha1="3c3x7vtjljbun2sxy3shtrocjs7jqhc" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on freenode 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions: so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic athmosphere, look and color scheme of a certain place or define the looks of an important npc.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The propotions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://tsugumo.swoo.net/tutorial/ So You Want To Be A Pixel Artist] by Tsugumo.
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.</text>
      <sha1>3c3x7vtjljbun2sxy3shtrocjs7jqhc</sha1>
    </revision>
    <revision>
      <id>3010</id>
      <parentid>2020</parentid>
      <timestamp>2005-11-09T03:17:14Z</timestamp>
      <contributor>
        <username>Metalcore</username>
        <id>165</id>
      </contributor>
      <minor/>
      <comment>english</comment>
      <origin>3010</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5012" sha1="sj6fzn96ysdzh8w29xgqhsa9z7xvxax" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://tsugumo.swoo.net/tutorial/ So You Want To Be A Pixel Artist] by Tsugumo.
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.</text>
      <sha1>sj6fzn96ysdzh8w29xgqhsa9z7xvxax</sha1>
    </revision>
    <revision>
      <id>3014</id>
      <parentid>3010</parentid>
      <timestamp>2005-11-09T13:53:03Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <comment>Tsugumo's host expired.</comment>
      <origin>3014</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5136" sha1="lx74p0atcop4xj1ouwxgbqd9h2h7809" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://tsugumo.swoo.net/tutorial/ So You Want To Be A Pixel Artist] by Tsugumo.
The domain seems to be expired, Zoggles also hosted this tutorial [http://www.zoggles.co.uk/asp/tutorials.asp?tut=17 here].
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.</text>
      <sha1>lx74p0atcop4xj1ouwxgbqd9h2h7809</sha1>
    </revision>
    <revision>
      <id>3024</id>
      <parentid>3014</parentid>
      <timestamp>2005-11-11T02:33:21Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Tutorials */</comment>
      <origin>3024</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5028" sha1="p1nxgr09undwkyrn5whbapfglkbjyok" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.zoggles.co.uk/asp/tutorials.asp?tut=17 So You Want To Be A Pixel Artist] by Tsugumo.
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.</text>
      <sha1>p1nxgr09undwkyrn5whbapfglkbjyok</sha1>
    </revision>
    <revision>
      <id>4323</id>
      <parentid>3024</parentid>
      <timestamp>2006-07-17T16:36:32Z</timestamp>
      <contributor>
        <username>Modanung</username>
        <id>8</id>
      </contributor>
      <comment>Zoggle's site seems to be down.</comment>
      <origin>4323</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5038" sha1="97drrn4z7fpo7wh2tcmcgdziailnlit" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo.
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.</text>
      <sha1>97drrn4z7fpo7wh2tcmcgdziailnlit</sha1>
    </revision>
    <revision>
      <id>4687</id>
      <parentid>4323</parentid>
      <timestamp>2006-08-16T14:19:51Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Concerning tiles */ added guidelines for dropshadows</comment>
      <origin>4687</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5284" sha1="93d0rd4jda46x3xd5vgytypmc04ukpd" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**Drop shadows: large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo.
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.</text>
      <sha1>93d0rd4jda46x3xd5vgytypmc04ukpd</sha1>
    </revision>
    <revision>
      <id>5146</id>
      <parentid>4687</parentid>
      <timestamp>2006-09-24T19:47:26Z</timestamp>
      <contributor>
        <username>Yosuhara</username>
        <id>324</id>
      </contributor>
      <minor/>
      <comment>added new tutorials</comment>
      <origin>5146</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5427" sha1="ehipqqn9h24sxs8jwsl4fj8hlvu4xew" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**Drop shadows: large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo.
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]</text>
      <sha1>ehipqqn9h24sxs8jwsl4fj8hlvu4xew</sha1>
    </revision>
    <revision>
      <id>5168</id>
      <parentid>5146</parentid>
      <timestamp>2006-09-29T14:37:39Z</timestamp>
      <contributor>
        <username>VxD</username>
        <id>517</id>
      </contributor>
      <comment>/* Tutorials */</comment>
      <origin>5168</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5492" sha1="gryexpzbxpo5x6s0bpb35nufntsztgz" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**Drop shadows: large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]</text>
      <sha1>gryexpzbxpo5x6s0bpb35nufntsztgz</sha1>
    </revision>
    <revision>
      <id>5169</id>
      <parentid>5168</parentid>
      <timestamp>2006-09-29T14:43:53Z</timestamp>
      <contributor>
        <username>VxD</username>
        <id>517</id>
      </contributor>
      <comment>/* Tutorials */</comment>
      <origin>5169</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5656" sha1="7pyn66ddrl3qeonni3zzsc9srpdxww5" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**Drop shadows: large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [www.pixeljoint.com].</text>
      <sha1>7pyn66ddrl3qeonni3zzsc9srpdxww5</sha1>
    </revision>
    <revision>
      <id>5170</id>
      <parentid>5169</parentid>
      <timestamp>2006-09-29T14:44:25Z</timestamp>
      <contributor>
        <username>VxD</username>
        <id>517</id>
      </contributor>
      <comment>/* Tutorials */</comment>
      <origin>5170</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5664" sha1="orer17drfpstztc1tnkwm2lhyq28vtg" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**Drop shadows: large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com].</text>
      <sha1>orer17drfpstztc1tnkwm2lhyq28vtg</sha1>
    </revision>
    <revision>
      <id>5171</id>
      <parentid>5170</parentid>
      <timestamp>2006-09-29T14:54:27Z</timestamp>
      <contributor>
        <username>VxD</username>
        <id>517</id>
      </contributor>
      <comment>/* Tutorials */</comment>
      <origin>5171</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5717" sha1="2ltrmlhx23f1609ljdnvrzh77h3n1u3" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**Drop shadows: large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com], [http://pixel-zone.rpgdx.net/shtml/tutorials.shtml].</text>
      <sha1>2ltrmlhx23f1609ljdnvrzh77h3n1u3</sha1>
    </revision>
    <revision>
      <id>5174</id>
      <parentid>5171</parentid>
      <timestamp>2006-09-29T20:59:32Z</timestamp>
      <contributor>
        <username>Yosuhara</username>
        <id>324</id>
      </contributor>
      <minor/>
      <comment>/* Tutorials */</comment>
      <origin>5174</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5646" sha1="7s971si3iy02eemrxbmfnebpsbkb3ri" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**Drop shadows: large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com], [http://pixel-zone.rpgdx.net/shtml/tutorials.shtml].</text>
      <sha1>7s971si3iy02eemrxbmfnebpsbkb3ri</sha1>
    </revision>
    <revision>
      <id>5175</id>
      <parentid>5174</parentid>
      <timestamp>2006-09-29T21:07:55Z</timestamp>
      <contributor>
        <username>Yosuhara</username>
        <id>324</id>
      </contributor>
      <minor/>
      <comment>/* Tutorials */</comment>
      <origin>5175</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5671" sha1="5maytmajniajy86exhxcfe6v3vp1xd0" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**The direction of the light: south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**The perspective: top-down 45Â° view angle (if in doubt, take a look at current screenshots or search for Secret of Mana screenshots).
**The proportions: a character is one tile wide and two tiles high.
**The color style: try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**Drop shadows: large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com/pixels/links.asp?id=2192], [http://pixel-zone.rpgdx.net/shtml/tutorials.shtml].</text>
      <sha1>5maytmajniajy86exhxcfe6v3vp1xd0</sha1>
    </revision>
    <revision>
      <id>5205</id>
      <parentid>5175</parentid>
      <timestamp>2006-10-03T13:47:02Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>/* Concerning tiles */</comment>
      <origin>5205</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5799" sha1="nqijoya5blj0wnrmwtrgp3dgsv8nr8y" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**'''Light direction:''' south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**[[Image:Perspective-schematic.png|right|150px]]'''Perspective:''' top-down 45Â° view angle (see the schematic to the right, the thick gray line is the length with which the side and bottom are perceived, a factor of 0.7 smaller).
**'''Proportions:''' a character is approximately one tile wide and two tiles high.
**'''Color style:''' try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**'''Drop shadows:''' large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**'''Reuse:''' The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com/pixels/links.asp?id=2192], [http://pixel-zone.rpgdx.net/shtml/tutorials.shtml].</text>
      <sha1>nqijoya5blj0wnrmwtrgp3dgsv8nr8y</sha1>
    </revision>
    <revision>
      <id>5909</id>
      <parentid>5205</parentid>
      <timestamp>2007-01-26T00:36:52Z</timestamp>
      <contributor>
        <username>Yosuhara</username>
        <id>324</id>
      </contributor>
      <minor/>
      <origin>5909</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5864" sha1="9esqipavgi0jfr8mk7k8iwwc9ma9wrq" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**'''Light direction:''' south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**[[Image:Perspective-schematic.png|right|150px]]'''Perspective:''' top-down 45Â° view angle (see the schematic to the right, the thick gray line is the length with which the side and bottom are perceived, a factor of 0.7 smaller).
**'''Proportions:''' a character is approximately one tile wide and two tiles high.
**'''Color style:''' try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**'''Drop shadows:''' large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**'''Reuse:''' The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://http://www.spriteart.com/main.html great st0ven's site]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com/pixels/links.asp?id=2192], [http://pixel-zone.rpgdx.net/shtml/tutorials.shtml].</text>
      <sha1>9esqipavgi0jfr8mk7k8iwwc9ma9wrq</sha1>
    </revision>
    <revision>
      <id>5910</id>
      <parentid>5909</parentid>
      <timestamp>2007-01-26T00:37:06Z</timestamp>
      <contributor>
        <username>Yosuhara</username>
        <id>324</id>
      </contributor>
      <minor/>
      <origin>5910</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5864" sha1="7bvdv6eluwggwprml1isf00ubh2vo7c" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**'''Light direction:''' south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**[[Image:Perspective-schematic.png|right|150px]]'''Perspective:''' top-down 45Â° view angle (see the schematic to the right, the thick gray line is the length with which the side and bottom are perceived, a factor of 0.7 smaller).
**'''Proportions:''' a character is approximately one tile wide and two tiles high.
**'''Color style:''' try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**'''Drop shadows:''' large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**'''Reuse:''' The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://http://www.spriteart.com/main.html Great st0ven's site]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com/pixels/links.asp?id=2192], [http://pixel-zone.rpgdx.net/shtml/tutorials.shtml].</text>
      <sha1>7bvdv6eluwggwprml1isf00ubh2vo7c</sha1>
    </revision>
    <revision>
      <id>5917</id>
      <parentid>5910</parentid>
      <timestamp>2007-01-26T15:12:12Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>/* Tutorials */ fixed link</comment>
      <origin>5917</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5857" sha1="bgcmf9ihll34ls150a0rjblj7xx4kj4" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
*We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot.

*Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts.

*You can find the technical specifications of tilesets here: [[Tileset development]]

*Please keep in mind that a mapper has got only 3 layers: 2 of them are always displayed below players and monsters while the other one is displayed always above. The lowest layer is usually used for ground tiles/walls, and since the limited number of layers, ground tiles should be non-transparent even if this increase a lot the number of tiles in a tileset. Transparent tiles should be only used for objects you can place in different places with different backgrounds such as plants, barrels, ... It is preferrable that cups, and food and whatever else stands on a table is drawn with the table tile below it. Paintings shouldn't have transparent borders, but wall behind them. (if you plan to use for example paintings in different tileset, save them elsewhere as transparent objects and then reapply them to another tile).

*Although we prefer high quality tiles over low quality ones, please keep in mind that we try to resemble the look of old SNES games. So please try not to make the tiles too realistic. This mean please don't use textures you get from reality, such a picture of a wooden piece and use it for your tiles. We strongly encourage you to manually pixelate every tile and avoid to use gradients or filters such as blur too excessive.

*All the tileset should use some coherence:
**'''Light direction:''' south-west for outdoor tilesets (of course there will be exceptions: different (or special) areas could have a different direction of light to give it a subtle different feeling, such as lava caves with subtle orange light from the bottom, and deep in the dark forest with glowing mushrooms), diffuse light for indoor tilesets diffused light is nice, but overusage could lead into problems with contrast between the inside and the outside.
**[[Image:Perspective-schematic.png|right|150px]]'''Perspective:''' top-down 45Â° view angle (see the schematic to the right, the thick gray line is the length with which the side and bottom are perceived, a factor of 0.7 smaller).
**'''Proportions:''' a character is approximately one tile wide and two tiles high.
**'''Color style:''' try to use the same color palette for the whole tileset. the selection of color is important for the feeling of the tileset. weak colors with a high amount of grey for example are good for a sad and cold feeling while bright colors create a happy and warm atmosphere. whatever atmosphere you choose: it should be consistent through the whole tileset. avoid using weird "alien" colors (keep saturation low :P). 
**'''Drop shadows:''' large objects on outdoor tilesets (like buildings, for example) should have drop shadows cast to the northeast. The shadows should be pure black with an opacity of 30%. the edges of the shadows should only have an opacity of 15%.
**'''Reuse:''' The tiles in one tileset should be able to be put together in as many different ways as possible to allow the mapper to express his creativity. This is the base requirement for:
*** Borders between different heights: http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/05/8.gif
***Fences http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/053.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/052.gif http://www.enterbrain.co.jp/digifami/digiweb/dot_teck/3nen/04/054.gif
(please note that the above pictures are only for demonstrational purpose. they are copyrighted and not part of the mana world project).

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com/pixels/links.asp?id=2192], [http://pixel-zone.rpgdx.net/shtml/tutorials.shtml].</text>
      <sha1>bgcmf9ihll34ls150a0rjblj7xx4kj4</sha1>
    </revision>
    <revision>
      <id>5990</id>
      <parentid>5917</parentid>
      <timestamp>2007-02-05T07:44:14Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>moved the tileset guidelines to "Tileset development"</comment>
      <origin>5990</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2471" sha1="3n541cgu2a0oxx8xkoaap1jxxpbwmeg" xml:space="preserve">== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com/pixels/links.asp?id=2192], [http://pixel-zone.rpgdx.net/shtml/tutorials.shtml].</text>
      <sha1>3n541cgu2a0oxx8xkoaap1jxxpbwmeg</sha1>
    </revision>
    <revision>
      <id>6207</id>
      <parentid>5990</parentid>
      <timestamp>2007-03-04T12:32:39Z</timestamp>
      <contributor>
        <username>Pauan</username>
        <id>473</id>
      </contributor>
      <minor/>
      <comment>Added in reference template.</comment>
      <origin>6207</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2488" sha1="qzrr90hrlmtoylusimxyk584o7mbf57" xml:space="preserve">{{Status_green}}
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*others : [http://www.pixel-arts.org/pixelation/index.php?topic=222.0], [http://www.pixeljoint.com/pixels/links.asp?id=2192], [http://pixel-zone.rpgdx.net/shtml/tutorials.shtml].</text>
      <sha1>qzrr90hrlmtoylusimxyk584o7mbf57</sha1>
    </revision>
    <revision>
      <id>6242</id>
      <parentid>6207</parentid>
      <timestamp>2007-03-06T00:53:10Z</timestamp>
      <contributor>
        <username>Bjørn</username>
        <id>3</id>
      </contributor>
      <comment>Removed dead link</comment>
      <origin>6242</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2453" sha1="iixa0y5dyeizwdhxal418nuw87cz7yu" xml:space="preserve">{{Status_green}}
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]</text>
      <sha1>iixa0y5dyeizwdhxal418nuw87cz7yu</sha1>
    </revision>
    <revision>
      <id>9697</id>
      <parentid>6242</parentid>
      <timestamp>2008-07-03T14:47:54Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>/* Tutorials */</comment>
      <origin>9697</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2567" sha1="bfbepsrn2gnadmwl7ybxauul13omee4" xml:space="preserve">{{Status_green}}
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]</text>
      <sha1>bfbepsrn2gnadmwl7ybxauul13omee4</sha1>
    </revision>
    <revision>
      <id>10371</id>
      <parentid>9697</parentid>
      <timestamp>2008-10-18T15:02:50Z</timestamp>
      <contributor>
        <username>Octalot</username>
        <id>1267</id>
      </contributor>
      <comment>How to get your content in to the game</comment>
      <origin>10371</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3083" sha1="l63c71vl7rpjzbvzbxbuwhlp0de5cs1" xml:space="preserve">{{Status_green}}
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]</text>
      <sha1>l63c71vl7rpjzbvzbxbuwhlp0de5cs1</sha1>
    </revision>
    <revision>
      <id>10630</id>
      <parentid>10371</parentid>
      <timestamp>2008-11-08T22:13:04Z</timestamp>
      <contributor>
        <username>Octalot</username>
        <id>1267</id>
      </contributor>
      <comment>Link to EJLol's proposed updated version</comment>
      <origin>10630</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3159" sha1="py1ty4hj2buxkri65cknj2pmhjpr8nk" xml:space="preserve">{{Status_green}}
A new revision of this page is being developed in [[User:EJlol/Guidelines]]
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]</text>
      <sha1>py1ty4hj2buxkri65cknj2pmhjpr8nk</sha1>
    </revision>
    <revision>
      <id>11050</id>
      <parentid>10630</parentid>
      <timestamp>2008-12-19T07:27:59Z</timestamp>
      <contributor>
        <username>CnaliGetol</username>
        <id>1402</id>
      </contributor>
      <comment>varalrolrel</comment>
      <origin>11050</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3170" sha1="cocnx5htv6ub3738lrughufqhtogruf" xml:space="preserve">vidaracouv
{{Status_green}}
A new revision of this page is being developed in [[User:EJlol/Guidelines]]
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]</text>
      <sha1>cocnx5htv6ub3738lrughufqhtogruf</sha1>
    </revision>
    <revision>
      <id>11057</id>
      <parentid>11050</parentid>
      <timestamp>2008-12-19T15:53:56Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Revert vandalism</comment>
      <origin>11057</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3159" sha1="py1ty4hj2buxkri65cknj2pmhjpr8nk" xml:space="preserve">{{Status_green}}
A new revision of this page is being developed in [[User:EJlol/Guidelines]]
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]</text>
      <sha1>py1ty4hj2buxkri65cknj2pmhjpr8nk</sha1>
    </revision>
    <revision>
      <id>11335</id>
      <parentid>11057</parentid>
      <timestamp>2009-01-08T15:32:10Z</timestamp>
      <contributor>
        <username>CnaliGetol</username>
        <id>1402</id>
      </contributor>
      <minor/>
      <comment>http://spfortne.qsh.eu/20090105-a-term-of-endearment.html</comment>
      <origin>11335</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3554" sha1="k0zkryrahjfrapw34p3yiv8fvmjnq4q" xml:space="preserve">[http://spfortne.qsh.eu/20090105-a-term-of-endearment.html a term of endearment movie quotes] [http://golxando.0lx.net/1086026749.html remedy music video code] [http://dronoubr.0lx.net/rip-audio-from.html rip audio from a video] [http://varpasz.is-the-boss.com/article848.htm iowa dot drivers license] [http://chifire.strefa.pl/news-1978.html larry king interview gordon b hinkley video audio] 
{{Status_green}}
A new revision of this page is being developed in [[User:EJlol/Guidelines]]
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]</text>
      <sha1>k0zkryrahjfrapw34p3yiv8fvmjnq4q</sha1>
    </revision>
    <revision>
      <id>11396</id>
      <parentid>11335</parentid>
      <timestamp>2009-01-08T16:20:39Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>Undo revision 11335 by [[Special:Contributions/CnaliGetol|CnaliGetol]] ([[User talk:CnaliGetol|Talk]])</comment>
      <origin>11396</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3159" sha1="py1ty4hj2buxkri65cknj2pmhjpr8nk" xml:space="preserve">{{Status_green}}
A new revision of this page is being developed in [[User:EJlol/Guidelines]]
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]</text>
      <sha1>py1ty4hj2buxkri65cknj2pmhjpr8nk</sha1>
    </revision>
    <revision>
      <id>11665</id>
      <parentid>11396</parentid>
      <timestamp>2009-02-15T08:07:08Z</timestamp>
      <contributor>
        <username>Haay</username>
        <id>1512</id>
      </contributor>
      <origin>11665</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3263" sha1="l2uig904je17x3hqywmoj7j4m4oa86r" xml:space="preserve">{{Status_green}}
A new revision of this page is being developed in [[User:EJlol/Guidelines]]
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist] by Tsugumo. (more recent version [http://www.geocities.com/skulkraken2002/])
*[http://translate.google.com/translate?u=http%3A%2F%2Fwww.enterbrain.co.jp%2Fdigifami%2Fdigiweb%2Fdot_teck%2F3nen%2F3_01.html&amp;langpair=ja%7Cen&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=%2Flanguage_tools Enterbrains Tutorial (translated from Japanese by Google)]. all the above images have been taken from this tutorial.
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://derekyu.com/extras/pixel01.html Derek Yu's Pixel Art Tutorial]
*[http://www.spriteart.com/main.html Great st0ven's site]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
*[http://www.youtube.com/watch?v=01cwLgigJRc&amp;feature=related| Pixel Art Tutorial: Tree (Youtube Video)]</text>
      <sha1>l2uig904je17x3hqywmoj7j4m4oa86r</sha1>
    </revision>
    <revision>
      <id>11666</id>
      <parentid>11665</parentid>
      <timestamp>2009-02-15T12:25:35Z</timestamp>
      <contributor>
        <username>Crush2</username>
        <id>1261</id>
      </contributor>
      <comment>Removed/updated dead tutorial links, removed the youtube video which just sucks art-wise.</comment>
      <origin>11666</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2706" sha1="4on7myddxy9f20t1te82v6ttupsy2rg" xml:space="preserve">{{Status_green}}
A new revision of this page is being developed in [[User:EJlol/Guidelines]]
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.geocities.com/skulkraken2002/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]</text>
      <sha1>4on7myddxy9f20t1te82v6ttupsy2rg</sha1>
    </revision>
    <revision>
      <id>11822</id>
      <parentid>11666</parentid>
      <timestamp>2009-03-12T11:17:23Z</timestamp>
      <contributor>
        <username>Irukard</username>
        <id>32</id>
      </contributor>
      <comment>/* Tutorials */  New link to tutorial</comment>
      <origin>11822</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2843" sha1="tty29wz8rvfj97meks67htb70qmx0ac" xml:space="preserve">{{Status_green}}
A new revision of this page is being developed in [[User:EJlol/Guidelines]]
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.geocities.com/skulkraken2002/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>tty29wz8rvfj97meks67htb70qmx0ac</sha1>
    </revision>
    <revision>
      <id>13831</id>
      <parentid>11822</parentid>
      <timestamp>2009-11-23T19:48:59Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>fixed broken link</comment>
      <origin>13831</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="2862" sha1="1i87tfscxsq6kzmm0azbnx5y2pbg6cs" xml:space="preserve">{{Status_green}}
A new revision of this page is being developed in [[User:EJlol/Guidelines]]
== In general ==
*Don't be afraid to show us your unfinished pieces, we are there to guide and help you through the process.
*If possible, hang around the #tmwart channel on irc.freenode.net 24/7.
*When you're available / doing work on tmw related stuff, please contact me on the previously mentioned channel.
*We're soon going to have a centralized repository for all the art related stuff where we're going to archive all of your versions, so you can just start to contribute there without the need to track down a dev. The details on the repository and the preferred version numbering are coming soon. EDIT(20050419): Ask me for details, it's up now.
*Preferred formats: .png and .ogg

== Concerning conceptual art ==
*You can always come up with new ideas to present to the team. Actually that's preferred and we like that.
*With conceptual art you might want to define important places, capture the generic atmosphere, look, and color scheme of a certain place or define the looks of an important NPC.

== Concerning tiles ==
We REALLY need a LOT of these, so if you think you can do ANYTHING, please give it a shot. Especially on these actively seek out our attention so we can assign new tasks to you. The fact that we won't contact you personally every day doesn't mean we don't need your efforts. You can find the technical specifications of tilesets and further tile related guidelines in the article [[Tileset development]].

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>1i87tfscxsq6kzmm0azbnx5y2pbg6cs</sha1>
    </revision>
    <revision>
      <id>13874</id>
      <parentid>13831</parentid>
      <timestamp>2009-12-05T20:20:26Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>replaced the guidelines with the new version we developed under supervision of EJlol</comment>
      <origin>13874</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5077" sha1="s2y09g2bujsgut9ofxl1oefpualnac8" xml:space="preserve">{{Status_green}}
When you create pixel art for TMW please follow these guidelines. Pixelart which does not follow these guidelines has less chance to get into the game.

=== General ===
* All graphics must be released under the GNU General Public License or a compatible license.
* Try to hang around in our art development IRC channel #tmw-art on irc.freenode whenever possible
* Please use our task tracking system [http://mantis.themanaworld.org Mantis] to manage graphical tasks you are doing
* Do not be afraid to show us your pixelart, we are there to guide and help you. Pixelart being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* A list of pixelart tutorials can be found [[User:EJlol/Tutorials|here]].
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Outlines: 1px, Coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Beings(players,monsters) and item icons level: stands out the most (heavily saturated with dark outlines)
* Perspective: top-down 45Â° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Light Direction: South-West ([[:Image:Lightdirection.png|Example]])
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti Aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* You may mirror the creature sprites, as long as the lighting is correct
* There is no size restriction, please go berserk

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPC's should be in the same style as the player sprites.
** NPC's do not and should not be constrained by player pose and body shape. For example, the startrek sprites are done in the same style as players, but strike a different pose.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.
** Some NPCs not in the same style as the player sprites may be accepted if appropriate. (For example, Santa)

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the New Forest Tileset as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for 'here is nothing' indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: New Forest Tileset
** Indoor: ???
** Dungeons: ???
* All tiles on a single tileset should have the same warm / cold feeling.
* When contributing to a other tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>s2y09g2bujsgut9ofxl1oefpualnac8</sha1>
    </revision>
    <revision>
      <id>14481</id>
      <parentid>13874</parentid>
      <timestamp>2009-12-31T21:28:23Z</timestamp>
      <contributor>
        <username>Bcs86</username>
        <id>1568</id>
      </contributor>
      <comment>/* General */</comment>
      <origin>14481</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5280" sha1="3y2kdr1bdj3fd6gdwmlmeep8lizpne0" xml:space="preserve">{{Status_green}}
When you create pixel art for TMW please follow these guidelines. Pixelart which does not follow these guidelines has less chance to get into the game.

=== General ===
* All graphics must be released under the GNU General Public License or a compatible license.
* Try to hang around in our art development IRC channel #tmw-art on [irc://irc.themanaworld.org irc.themanaworld.org] whenever possible.
* Please use our task tracking system [http://mantis.themanaworld.org Mantis] to manage graphical tasks you are doing.
* Do not be afraid to show us your pixelart, we are there to guide and help you. Pixelart being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* A list of pixelart tutorials can be found [[User:EJlol/Tutorials|here]].
* The pixel art should be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Outlines: 1px, Coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Beings(players,monsters) and item icons level: stands out the most (heavily saturated with dark outlines)
* Perspective: top-down 45Â° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Light Direction: South-West ([[:Image:Lightdirection.png|Example]])
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti Aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* You may mirror the creature sprites, as long as the lighting is correct
* There is no size restriction, please go berserk

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPC's should be in the same style as the player sprites.
** NPC's do not and should not be constrained by player pose and body shape. For example, the startrek sprites are done in the same style as players, but strike a different pose.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.
** Some NPCs not in the same style as the player sprites may be accepted if appropriate. (For example, Santa)

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the New Forest Tileset as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for 'here is nothing' indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: New Forest Tileset
** Indoor: ???
** Dungeons: ???
* All tiles on a single tileset should have the same warm / cold feeling.
* When contributing to a other tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>3y2kdr1bdj3fd6gdwmlmeep8lizpne0</sha1>
    </revision>
    <revision>
      <id>14482</id>
      <parentid>14481</parentid>
      <timestamp>2009-12-31T21:50:33Z</timestamp>
      <contributor>
        <username>Bcs86</username>
        <id>1568</id>
      </contributor>
      <comment>/* Tilesets */</comment>
      <origin>14482</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5359" sha1="gdnwcaxtxxz1vozt8vtrrh24atfz3wm" xml:space="preserve">{{Status_green}}
When you create pixel art for TMW please follow these guidelines. Pixelart which does not follow these guidelines has less chance to get into the game.

=== General ===
* All graphics must be released under the GNU General Public License or a compatible license.
* Try to hang around in our art development IRC channel #tmw-art on [irc://irc.themanaworld.org irc.themanaworld.org] whenever possible.
* Please use our task tracking system [http://mantis.themanaworld.org Mantis] to manage graphical tasks you are doing.
* Do not be afraid to show us your pixelart, we are there to guide and help you. Pixelart being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* A list of pixelart tutorials can be found [[User:EJlol/Tutorials|here]].
* The pixel art should be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Outlines: 1px, Coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Beings(players,monsters) and item icons level: stands out the most (heavily saturated with dark outlines)
* Perspective: top-down 45Â° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Light Direction: South-West ([[:Image:Lightdirection.png|Example]])
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti Aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* You may mirror the creature sprites, as long as the lighting is correct
* There is no size restriction, please go berserk

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPC's should be in the same style as the player sprites.
** NPC's do not and should not be constrained by player pose and body shape. For example, the startrek sprites are done in the same style as players, but strike a different pose.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.
** Some NPCs not in the same style as the player sprites may be accepted if appropriate. (For example, Santa)

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for 'here is nothing' indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: New Forest Tileset
** Indoor: ???
** Dungeons: ???
* All tiles on a single tileset should have the same warm / cold feeling.
* When contributing to a other tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>gdnwcaxtxxz1vozt8vtrrh24atfz3wm</sha1>
    </revision>
    <revision>
      <id>14485</id>
      <parentid>14482</parentid>
      <timestamp>2010-01-01T17:42:35Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>this is a must, not a should requirement. also removed redundant link to tutorials.</comment>
      <origin>14485</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5288" sha1="g8ptziptwyy2uyqopdhdfj5l8fmi29j" xml:space="preserve">{{Status_green}}
When you create pixel art for TMW please follow these guidelines. Pixelart which does not follow these guidelines has less chance to get into the game.

=== General ===
* All graphics must be released under the GNU General Public License or a compatible license.
* Try to hang around in our art development IRC channel #tmw-art on [irc://irc.themanaworld.org irc.themanaworld.org] whenever possible.
* Please use our task tracking system [http://mantis.themanaworld.org Mantis] to manage graphical tasks you are doing.
* Do not be afraid to show us your pixelart, we are there to guide and help you. Pixelart being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Outlines: 1px, Coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Beings(players,monsters) and item icons level: stands out the most (heavily saturated with dark outlines)
* Perspective: top-down 45Â° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Light Direction: South-West ([[:Image:Lightdirection.png|Example]])
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti Aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* You may mirror the creature sprites, as long as the lighting is correct
* There is no size restriction, please go berserk

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPC's should be in the same style as the player sprites.
** NPC's do not and should not be constrained by player pose and body shape. For example, the startrek sprites are done in the same style as players, but strike a different pose.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.
** Some NPCs not in the same style as the player sprites may be accepted if appropriate. (For example, Santa)

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for 'here is nothing' indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: New Forest Tileset
** Indoor: ???
** Dungeons: ???
* All tiles on a single tileset should have the same warm / cold feeling.
* When contributing to a other tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>g8ptziptwyy2uyqopdhdfj5l8fmi29j</sha1>
    </revision>
    <revision>
      <id>17905</id>
      <parentid>14485</parentid>
      <timestamp>2011-02-06T12:35:23Z</timestamp>
      <contributor>
        <username>Crush</username>
        <id>103</id>
      </contributor>
      <comment>clarified that NPCs are like beings</comment>
      <origin>17905</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5299" sha1="imw0jtfwq7szyo0fj66el94slg7ii4m" xml:space="preserve">{{Status_green}}
When you create pixel art for TMW please follow these guidelines. Pixelart which does not follow these guidelines has less chance to get into the game.

=== General ===
* All graphics must be released under the GNU General Public License or a compatible license.
* Try to hang around in our art development IRC channel #tmw-art on [irc://irc.themanaworld.org irc.themanaworld.org] whenever possible.
* Please use our task tracking system [http://mantis.themanaworld.org Mantis] to manage graphical tasks you are doing.
* Do not be afraid to show us your pixelart, we are there to guide and help you. Pixelart being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Outlines: 1px, Coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
* Perspective: top-down 45Â° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Light Direction: South-West ([[:Image:Lightdirection.png|Example]])
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti Aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* You may mirror the creature sprites, as long as the lighting is correct
* There is no size restriction, please go berserk

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPC's should be in the same style as the player sprites.
** NPC's do not and should not be constrained by player pose and body shape. For example, the startrek sprites are done in the same style as players, but strike a different pose.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.
** Some NPCs not in the same style as the player sprites may be accepted if appropriate. (For example, Santa)

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for 'here is nothing' indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: New Forest Tileset
** Indoor: ???
** Dungeons: ???
* All tiles on a single tileset should have the same warm / cold feeling.
* When contributing to a other tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>imw0jtfwq7szyo0fj66el94slg7ii4m</sha1>
    </revision>
    <revision>
      <id>18294</id>
      <parentid>17905</parentid>
      <timestamp>2011-04-08T07:11:22Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* General */ irc #tmw-art changed to #tmw-dev</comment>
      <origin>18294</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5299" sha1="m6e43yyo1z0s5ebtkb25b9getn4d5b4" xml:space="preserve">{{Status_green}}
When you create pixel art for TMW please follow these guidelines. Pixelart which does not follow these guidelines has less chance to get into the game.

=== General ===
* All graphics must be released under the GNU General Public License or a compatible license.
* Try to hang around in our art development IRC channel #tmw-dev on [irc://irc.themanaworld.org irc.themanaworld.org] whenever possible.
* Please use our task tracking system [http://mantis.themanaworld.org Mantis] to manage graphical tasks you are doing.
* Do not be afraid to show us your pixelart, we are there to guide and help you. Pixelart being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Outlines: 1px, Coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
* Perspective: top-down 45Â° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Light Direction: South-West ([[:Image:Lightdirection.png|Example]])
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti Aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* You may mirror the creature sprites, as long as the lighting is correct
* There is no size restriction, please go berserk

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPC's should be in the same style as the player sprites.
** NPC's do not and should not be constrained by player pose and body shape. For example, the startrek sprites are done in the same style as players, but strike a different pose.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.
** Some NPCs not in the same style as the player sprites may be accepted if appropriate. (For example, Santa)

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for 'here is nothing' indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: New Forest Tileset
** Indoor: ???
** Dungeons: ???
* All tiles on a single tileset should have the same warm / cold feeling.
* When contributing to a other tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==
The best way to do this is yet to be decided, but this should work:

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Create a new report in [http://mantis.themanaworld.org/ Mantis] to request that it be included in the game.

== Tutorials ==
When you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>m6e43yyo1z0s5ebtkb25b9getn4d5b4</sha1>
    </revision>
    <revision>
      <id>20061</id>
      <parentid>18294</parentid>
      <timestamp>2011-09-12T02:25:46Z</timestamp>
      <contributor>
        <username>Enchilado</username>
        <id>1753</id>
      </contributor>
      <comment>a little cleaning up of details (though I'll probably do more work on this later)</comment>
      <origin>20061</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5246" sha1="jjhqpsz6fs7p8e5suznk0b819n5apmd" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #tmw-dev on [irc://irc.themanaworld.org irc.themanaworld.org] whenever possible.
* Please use our task tracking system [http://mantis.themanaworld.org Mantis] to manage graphical tasks you are doing.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Direction: South-West to North-East ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Wait for the thread to marked [RC] (release candidate) by a developer and then pushed and marked [GIT] by another. Your work will then be included in the next update.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>jjhqpsz6fs7p8e5suznk0b819n5apmd</sha1>
    </revision>
    <revision>
      <id>22246</id>
      <parentid>20061</parentid>
      <timestamp>2011-10-28T20:39:12Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* General Guidelines */ clarify direction</comment>
      <origin>22246</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5329" sha1="n32ly68zkw1l04c87305racbp40erlt" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #tmw-dev on [irc://irc.themanaworld.org irc.themanaworld.org] whenever possible.
* Please use our task tracking system [http://mantis.themanaworld.org Mantis] to manage graphical tasks you are doing.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Wait for the thread to marked [RC] (release candidate) by a developer and then pushed and marked [GIT] by another. Your work will then be included in the next update.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>n32ly68zkw1l04c87305racbp40erlt</sha1>
    </revision>
    <revision>
      <id>22734</id>
      <parentid>22246</parentid>
      <timestamp>2011-11-14T17:58:24Z</timestamp>
      <contributor>
        <username>EJlol</username>
        <id>294</id>
      </contributor>
      <comment>Added information about dyeing</comment>
      <origin>22734</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5409" sha1="s21zk11ld9gzyt65vdo13dzoe9xmljx" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #tmw-dev on [irc://irc.themanaworld.org irc.themanaworld.org] whenever possible.
* Please use our task tracking system [http://mantis.themanaworld.org Mantis] to manage graphical tasks you are doing.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Wait for the thread to marked [RC] (release candidate) by a developer and then pushed and marked [GIT] by another. Your work will then be included in the next update.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>s21zk11ld9gzyt65vdo13dzoe9xmljx</sha1>
    </revision>
    <revision>
      <id>25320</id>
      <parentid>22734</parentid>
      <timestamp>2013-01-26T09:36:17Z</timestamp>
      <contributor>
        <username>Jenalya</username>
        <id>1876</id>
      </contributor>
      <comment>/* General */  Remove the request to use Mantis, as it isn't in use anymore.</comment>
      <origin>25320</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5290" sha1="fk5vtpqlh29xnyij22krsghm9k0zz08" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #tmw-dev on [irc://irc.themanaworld.org irc.themanaworld.org] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Wait for the thread to marked [RC] (release candidate) by a developer and then pushed and marked [GIT] by another. Your work will then be included in the next update.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>fk5vtpqlh29xnyij22krsghm9k0zz08</sha1>
    </revision>
    <revision>
      <id>26477</id>
      <parentid>25320</parentid>
      <timestamp>2013-05-28T16:04:48Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Update IRC info.</comment>
      <origin>26477</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5291" sha1="ngcxer2iov1b8z1e7a6hn28pjmpagqm" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==

*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Wait for the thread to marked [RC] (release candidate) by a developer and then pushed and marked [GIT] by another. Your work will then be included in the next update.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>ngcxer2iov1b8z1e7a6hn28pjmpagqm</sha1>
    </revision>
    <revision>
      <id>26478</id>
      <parentid>26477</parentid>
      <timestamp>2013-05-28T16:50:02Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <origin>26478</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6417" sha1="d3ghjn8snynp6q5nxrf6bdd61f2euin" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==

===Trello Method=== (prefered method) 
* PM Jenalya to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Wait for the thread to marked [RC] (release candidate) by a developer and then pushed and marked [GIT] by another. Your work will then be included in the next update.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>d3ghjn8snynp6q5nxrf6bdd61f2euin</sha1>
    </revision>
    <revision>
      <id>26479</id>
      <parentid>26478</parentid>
      <timestamp>2013-05-28T16:50:21Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* How to get your content in to the game */</comment>
      <origin>26479</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6399" sha1="lrrm93olcumv5seqk5f38wboa0pz9fy" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==

===Trello Method=== 
* PM Jenalya to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Wait for the thread to marked [RC] (release candidate) by a developer and then pushed and marked [GIT] by another. Your work will then be included in the next update.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>lrrm93olcumv5seqk5f38wboa0pz9fy</sha1>
    </revision>
    <revision>
      <id>26615</id>
      <parentid>26479</parentid>
      <timestamp>2013-06-07T13:55:25Z</timestamp>
      <contributor>
        <username>Jaxad0127</username>
        <id>999</id>
      </contributor>
      <minor/>
      <comment>Jaxad0127 moved page [[Guidelines]] to [[Dev:Guidelines]]</comment>
      <origin>26615</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6399" sha1="lrrm93olcumv5seqk5f38wboa0pz9fy" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==

===Trello Method=== 
* PM Jenalya to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Wait for the thread to marked [RC] (release candidate) by a developer and then pushed and marked [GIT] by another. Your work will then be included in the next update.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>lrrm93olcumv5seqk5f38wboa0pz9fy</sha1>
    </revision>
    <revision>
      <id>28496</id>
      <parentid>26615</parentid>
      <timestamp>2013-10-27T17:24:16Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Development Guidelines Changing to Match RC1 &amp; TMWA Goals */</comment>
      <origin>28496</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6423" sha1="guxezl62ez3mrfhxp7kt2262l00enzq" xml:space="preserve">{{status_construction}}
{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** Shadows should NOT be used for NPCs, shadows are reserved for large objects or flying creatures.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling

== How to get your content in to the game ==

===Trello Method=== 
* PM Jenalya to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Change the [WIP] thread's title to [WIP]&gt;[FND] (finished), and make it clear which is the final version.
*Wait for the thread to marked [RC] (release candidate) by a developer and then pushed and marked [GIT] by another. Your work will then be included in the next update.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>guxezl62ez3mrfhxp7kt2262l00enzq</sha1>
    </revision>
    <revision>
      <id>28497</id>
      <parentid>28496</parentid>
      <timestamp>2013-10-27T17:42:43Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* New Methods to Constrain avenues art can come in so we don't lose so much again */</comment>
      <origin>28497</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7285" sha1="1fruampjlcr0zinolfc3t77c8xduc2g" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** NPCs should be a nude model.
** Appearance is changed by adding clothing layers. 
** Shadow is either a particle effect or clothing. 
** Fringe Items are to be added as either a particle effect or clothing.
** Shadows are NOT to be used on the Nude Models.
** Mob Sprites Can be used for NPCs as well
** Player Sprite Sheets can be used to create NPCs
** NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
** Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Jenalya to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>1fruampjlcr0zinolfc3t77c8xduc2g</sha1>
    </revision>
    <revision>
      <id>28498</id>
      <parentid>28497</parentid>
      <timestamp>2013-10-27T17:44:10Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Trello Method */</comment>
      <origin>28498</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7295" sha1="60ch1rh8486mqyzme26i5yytj0yhpb7" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** NPCs should be a nude model.
** Appearance is changed by adding clothing layers. 
** Shadow is either a particle effect or clothing. 
** Fringe Items are to be added as either a particle effect or clothing.
** Shadows are NOT to be used on the Nude Models.
** Mob Sprites Can be used for NPCs as well
** Player Sprite Sheets can be used to create NPCs
** NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
** Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Jenalya or wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>60ch1rh8486mqyzme26i5yytj0yhpb7</sha1>
    </revision>
    <revision>
      <id>28906</id>
      <parentid>28498</parentid>
      <timestamp>2013-11-25T12:00:03Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <minor/>
      <comment>/* General Guidelines */</comment>
      <origin>28906</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7305" sha1="o7mcy04b0imm0l9bsjoxoe2m9bpebvy" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya or Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** NPCs should be a nude model.
** Appearance is changed by adding clothing layers. 
** Shadow is either a particle effect or clothing. 
** Fringe Items are to be added as either a particle effect or clothing.
** Shadows are NOT to be used on the Nude Models.
** Mob Sprites Can be used for NPCs as well
** Player Sprite Sheets can be used to create NPCs
** NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
** Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Jenalya or wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>o7mcy04b0imm0l9bsjoxoe2m9bpebvy</sha1>
    </revision>
    <revision>
      <id>28907</id>
      <parentid>28906</parentid>
      <timestamp>2013-11-25T12:04:18Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* NPCs */ Redid NPC constraints. The same but different. Basically the NPC is now submitted in layers.</comment>
      <origin>28907</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7425" sha1="jil9l6s21bjd0xvty1flwlh38icm86u" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya or Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
** NPCs must be in the same style as the player sprites.
** NPCs do not and should not be constrained by player pose and body shape.
** NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
** NPCs should be a base nude model.
** Appearance is changed by adding clothing layers. 
** NPCs clothing is a separate sheet.
** Shadow is either a particle effect or clothing. 
** Fringe Items are to be added as either a particle effect or clothing.
** Shadows are NOT to be used on the Nude Models.
** Mob Sprites Can be used for NPCs as well
** Player Sprite Sheets can be used to create NPCs
** NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
** Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Jenalya or wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>jil9l6s21bjd0xvty1flwlh38icm86u</sha1>
    </revision>
    <revision>
      <id>28908</id>
      <parentid>28907</parentid>
      <timestamp>2013-11-25T12:05:10Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <minor/>
      <comment>/* NPCs */</comment>
      <origin>28908</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7412" sha1="30ysbkg0mjbm2ngm0c80gbny9fk0o0p" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya or Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Jenalya or wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>30ysbkg0mjbm2ngm0c80gbny9fk0o0p</sha1>
    </revision>
    <revision>
      <id>29386</id>
      <parentid>28908</parentid>
      <timestamp>2014-02-20T03:16:37Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Trello Method */</comment>
      <origin>29386</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7401" sha1="a0nbr9mkxhk0hfjm9fmjc7bhwfvywlj" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya or Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [http://forums.themanaworld.org/viewforum.php?f=18 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>a0nbr9mkxhk0hfjm9fmjc7bhwfvywlj</sha1>
    </revision>
    <revision>
      <id>29387</id>
      <parentid>29386</parentid>
      <timestamp>2014-02-20T03:22:54Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Forum Method */</comment>
      <origin>29387</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7401" sha1="4kanhvtaem60jwd6xjfcw3e5rcp5la2" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya or Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [http://gitorious.org/tmwdata/mainline/blobs/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>4kanhvtaem60jwd6xjfcw3e5rcp5la2</sha1>
    </revision>
    <revision>
      <id>29388</id>
      <parentid>29387</parentid>
      <timestamp>2014-02-20T03:57:09Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Tilesets */</comment>
      <origin>29388</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7411" sha1="rph8et9ngrfr0x411au8ivqqb5e59qa" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=8 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya or Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>rph8et9ngrfr0x411au8ivqqb5e59qa</sha1>
    </revision>
    <revision>
      <id>29389</id>
      <parentid>29388</parentid>
      <timestamp>2014-02-20T04:04:40Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* General */</comment>
      <origin>29389</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7411" sha1="q4nsugat1r4toxco527402drti3kh44" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya or Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[Monsterset development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>q4nsugat1r4toxco527402drti3kh44</sha1>
    </revision>
    <revision>
      <id>29390</id>
      <parentid>29389</parentid>
      <timestamp>2014-02-20T04:06:47Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Creatures */</comment>
      <origin>29390</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7434" sha1="73pueiyzyuphgj75lsi7l6faa4s0wce" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Jenalya or Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[https://trello.com/b/rNnx513z/art-development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>73pueiyzyuphgj75lsi7l6faa4s0wce</sha1>
    </revision>
    <revision>
      <id>29391</id>
      <parentid>29390</parentid>
      <timestamp>2014-02-20T04:07:18Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* General Guidelines */</comment>
      <origin>29391</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7423" sha1="02kz1bvl1daofpbycxsifddkou9d5ut" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[[https://trello.com/b/rNnx513z/art-development]]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>02kz1bvl1daofpbycxsifddkou9d5ut</sha1>
    </revision>
    <revision>
      <id>29392</id>
      <parentid>29391</parentid>
      <timestamp>2014-02-20T04:07:29Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <minor/>
      <comment>/* Creatures */</comment>
      <origin>29392</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7421" sha1="9oh2zdmmpodnragzdrwes0rbasfhvu6" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>9oh2zdmmpodnragzdrwes0rbasfhvu6</sha1>
    </revision>
    <revision>
      <id>29393</id>
      <parentid>29392</parentid>
      <timestamp>2014-02-20T04:08:05Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Creatures */</comment>
      <origin>29393</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7420" sha1="j1vfo4usf276iafv6u9tcy0tr1b26ij" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[http://trello.com/b/rNnx513z/art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>j1vfo4usf276iafv6u9tcy0tr1b26ij</sha1>
    </revision>
    <revision>
      <id>29394</id>
      <parentid>29393</parentid>
      <timestamp>2014-02-20T04:08:30Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* Creatures */</comment>
      <origin>29394</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7437" sha1="hkfyw7o01kqp0w2298bwd7wwnyub321" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/Forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>hkfyw7o01kqp0w2298bwd7wwnyub321</sha1>
    </revision>
    <revision>
      <id>31101</id>
      <parentid>29394</parentid>
      <timestamp>2014-07-25T02:59:43Z</timestamp>
      <contributor>
        <username>Gshlvr</username>
        <id>2318</id>
      </contributor>
      <minor/>
      <comment>Changed capital 'F' in link to lowercase, fixing a 404.</comment>
      <origin>31101</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7437" sha1="h42cngiii9azgypkqn4on9t4yghawrz" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]</text>
      <sha1>h42cngiii9azgypkqn4on9t4yghawrz</sha1>
    </revision>
    <revision>
      <id>31850</id>
      <parentid>31101</parentid>
      <timestamp>2014-12-17T16:21:25Z</timestamp>
      <contributor>
        <username>Wushin</username>
        <id>2233</id>
      </contributor>
      <comment>/* categorizing */</comment>
      <origin>31850</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7486" sha1="0nyype1gpm9h2dflwdmsua88g9vrg94" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]

[[Category:Reference]]
[[Category:Development]]</text>
      <sha1>0nyype1gpm9h2dflwdmsua88g9vrg94</sha1>
    </revision>
    <revision>
      <id>33700</id>
      <parentid>31850</parentid>
      <timestamp>2015-03-11T08:24:03Z</timestamp>
      <contributor>
        <username>Cassy</username>
        <id>2265</id>
      </contributor>
      <minor/>
      <comment>removing category</comment>
      <origin>33700</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7463" sha1="tw7wret0q4ovr3yxvlij7w6im57ndyo" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Trello Method=== 
* PM Wushin to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]
* Read Cards [https://trello.com/c/l69ummKJ Graphics Progress Tags] and [https://trello.com/c/rDMARAHU General Graphic Tags]
* Start a card in [cpt] with an png image of tile
* Discuss it with the other art members about possible use case
* Move it to [WIP] and begin to finish the graphic.
* Once you are satisfied with the result move it to [FND] awaiting completion
* Once it's been moved into [RC] you'll will see it in game.

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]

[[Category:Development]]</text>
      <sha1>tw7wret0q4ovr3yxvlij7w6im57ndyo</sha1>
    </revision>
    <revision>
      <id>46109</id>
      <parentid>33700</parentid>
      <timestamp>2019-10-09T20:09:39Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Trello Method Removed</comment>
      <origin>46109</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6880" sha1="7difuczv91vp4o9rdy4hpvzsg5aq3ac" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*Move it to trello once it is less of a concept and has physical art.
*Please only use the forum to dicuss [CPT] and [REQ]. [WIP], [FND] and [RC] should be made into trello cards. 
*Art will no longer move from the forums into game. NOTE: We lost too much good art we had to dig out because threads would get buried waiting for content to add them

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]

[[Category:Development]]</text>
      <sha1>7difuczv91vp4o9rdy4hpvzsg5aq3ac</sha1>
    </revision>
    <revision>
      <id>46110</id>
      <parentid>46109</parentid>
      <timestamp>2019-10-09T20:11:36Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Forum Method: Remove Trello references, mention GitLab</comment>
      <origin>46110</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6773" sha1="ionynp1e7dhh6qe3u8g2ywhy5uiyny5" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released under the GNU General Public License or a compatible license.
* Try to hang around in our development IRC channel #themanaworld-art on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on (Usually tagged with [WIP], for work in progress) can be posted on the [http://trello.com/board/art-development/4ea730ee9982b463f800497e trello] or the [http://forums.themanaworld.org/viewforum.php?f=2 forums].
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*You can bump your post if it gets buried too deep and reviewers cannot find it anymore, but don't abuse.
*If you don't want your art to get lost, submit it on GitLab directly.
*It'll be pushed to master once it's final version is approved.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]

[[Category:Development]]</text>
      <sha1>ionynp1e7dhh6qe3u8g2ywhy5uiyny5</sha1>
    </revision>
    <revision>
      <id>46111</id>
      <parentid>46110</parentid>
      <timestamp>2019-10-09T20:13:42Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>General: No Trello</comment>
      <origin>46111</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6712" sha1="l4qydqsw2yrn2edn4r2xxjwyn86cqco" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== General ===
* All graphics '''must''' be released with dual license, under the GNU General Public License and Creative Commons Attribution Share Alike, or a compatible license.
* Try to hang around in our development IRC channel #evol-dev on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on can be posted on the [http://forums.themanaworld.org/viewforum.php?f=2 forums] or on GitLab.
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*You can bump your post if it gets buried too deep and reviewers cannot find it anymore, but don't abuse.
*If you don't want your art to get lost, submit it on GitLab directly.
*It'll be pushed to master once it's final version is approved.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]

[[Category:Development]]</text>
      <sha1>l4qydqsw2yrn2edn4r2xxjwyn86cqco</sha1>
    </revision>
    <revision>
      <id>53197</id>
      <parentid>46111</parentid>
      <timestamp>2020-12-31T23:44:13Z</timestamp>
      <contributor>
        <username>Speiros</username>
        <id>2726</id>
      </contributor>
      <minor/>
      <comment>I added in the Prelude - a link to a more up-to-date article.</comment>
      <origin>53197</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6958" sha1="mzt173vdjp7jk4w0arttfap0q3j08cd" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== Prelude ===
This article may be a little out of date. If so, here is a link that may help. https://wiki.themanaworld.org/index.php/Dev:Joining_the_project.

[[User:Speiros|Speiros]] ([[User talk:Speiros|talk]]) 23:44, 31 December 2020 (UTC)

=== General ===
* All graphics '''must''' be released with dual license, under the GNU General Public License and Creative Commons Attribution Share Alike, or a compatible license.
* Try to hang around in our development IRC channel #evol-dev on [irc://irc.freenode.net irc.freenode.net] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on can be posted on the [http://forums.themanaworld.org/viewforum.php?f=2 forums] or on GitLab.
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*You can bump your post if it gets buried too deep and reviewers cannot find it anymore, but don't abuse.
*If you don't want your art to get lost, submit it on GitLab directly.
*It'll be pushed to master once it's final version is approved.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]

[[Category:Development]]</text>
      <sha1>mzt173vdjp7jk4w0arttfap0q3j08cd</sha1>
    </revision>
    <revision>
      <id>54980</id>
      <parentid>53197</parentid>
      <timestamp>2021-05-28T21:24:26Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <minor/>
      <comment>Text replacement - "irc.freenode.net" to "irc.libera.chat"</comment>
      <origin>54980</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6956" sha1="ce10ylz6bsqpdv9zc6xl9qk4l3ymb66" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== Prelude ===
This article may be a little out of date. If so, here is a link that may help. https://wiki.themanaworld.org/index.php/Dev:Joining_the_project.

[[User:Speiros|Speiros]] ([[User talk:Speiros|talk]]) 23:44, 31 December 2020 (UTC)

=== General ===
* All graphics '''must''' be released with dual license, under the GNU General Public License and Creative Commons Attribution Share Alike, or a compatible license.
* Try to hang around in our development IRC channel #evol-dev on [irc://irc.libera.chat irc.libera.chat] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on can be posted on the [http://forums.themanaworld.org/viewforum.php?f=2 forums] or on GitLab.
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*You can bump your post if it gets buried too deep and reviewers cannot find it anymore, but don't abuse.
*If you don't want your art to get lost, submit it on GitLab directly.
*It'll be pushed to master once it's final version is approved.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]

[[Category:Development]]</text>
      <sha1>ce10ylz6bsqpdv9zc6xl9qk4l3ymb66</sha1>
    </revision>
    <revision>
      <id>59490</id>
      <parentid>54980</parentid>
      <timestamp>2024-03-27T03:56:43Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Guidelines]] to [[Development:Guidelines]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>54980</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6956" sha1="ce10ylz6bsqpdv9zc6xl9qk4l3ymb66" xml:space="preserve">{{Status_green}}
When creating pixel art for TMW, please make sure to follow these guidelines. Pixel art which does not will have a much-lessened chance of getting into the game.

=== Prelude ===
This article may be a little out of date. If so, here is a link that may help. https://wiki.themanaworld.org/index.php/Dev:Joining_the_project.

[[User:Speiros|Speiros]] ([[User talk:Speiros|talk]]) 23:44, 31 December 2020 (UTC)

=== General ===
* All graphics '''must''' be released with dual license, under the GNU General Public License and Creative Commons Attribution Share Alike, or a compatible license.
* Try to hang around in our development IRC channel #evol-dev on [irc://irc.libera.chat irc.libera.chat] whenever possible.
* Do not be afraid to show us your pixel art, we are here to guide and help you. Pixel art being worked on can be posted on the [http://forums.themanaworld.org/viewforum.php?f=2 forums] or on GitLab.
* The pixel art '''must''' be made by you or derived from TMW's existing graphics. We will never accept pixel art ripped from other games nor from undisclosed sources.
* The following games can be used as inspiration:
**Secret of Mana 2
**Final Fantasy VI (Named Final Fantasy III in North America)
**Chrono Trigger
**Ragnarok Online

=== General Guidelines ===
* Light Source: Above, from South-West. For tilesets, this roughly means from the bottom-left corner; for items, the top-left. ([[:Image:Lightdirection.png|Example]])
* Perspective: top-down 45° view angle. ([[:Image:Perspective_Reference.png|Example]])
* Dyeable Images: Images can be dyed, see [[Image dyeing]] for more information
* Outlines: 1px, coloured. We use 3 kinds of different outlines:
**Ground level: should have the dullest colors (no outlines everything blends into each other) ([[:Image:Outlines_ground.png|Example]])
**Objects level: stands out from the ground level (with more contrast and maybe even a light outline)
**Sprites (characters, monsters etc.) and item icons level: stands out the most (heavily saturated with dark outlines)
** Objects should be fully lit ([[:Image:Lighting fill.png|Example]])
* Wind Direction: From West to East
* Proportions: A character is approximately one tile wide (32px) and two tiles high (64px) ([[:Image:Size.png|Example]])
* Drop Shadows:
**Large objects on outdoor tilesets have a drop shadow to the northeast
**Flying creatures have a drop shadow ([[:Image:Dropshadow.png|Example]])
**Shadows should be pure black (#000000), and have a opacity of 30%, the edges have a opacity of 15%
* Anti-aliasing: Only if it does not look smooth without it
* Blood: May only be used if it spice up certain environments that needs to be extra creepy. ([[:Image:No_blood_new.png|Example]])
* Quality of art required is relative to what it is meant to add or replace and content it is going to be paired with. Always reference the current art ingame as reference. [https://github.com/themanaworld/tmwa-client-data/tree/master/graphics Current Game Art for reference.]
** PM Wushin on the forums to get added to the art trello [https://trello.com/board/art-development/4ea730ee9982b463f800497e Art trello for TMWA]

=== Creatures ===
[https://trello.com/b/rNnx513z/art-development art-development]
* Mirroring the shape of a sprite is acceptable, provided the shading is correct on each frame.
* There is no size restriction, although the "attackable" area of a monster is only 1*1 tile.

=== Icons ===
[[User:EJlol/Guidelines/Icon examples|Icon Development]]
* Use other icons as examples if possible ([[:Image:Icons.png|Example]])

=== NPCs ===
* NPCs must be in the same style as the player sprites.
* NPCs do not and should not be constrained by player pose and body shape.
* NPCs oversized objects (forges,looms,etc.) are animated tiles (see maps)
* NPCs should be a base nude model.
* Appearance is changed by adding clothing layers. 
* NPCs clothing is a separate sheet.
* Shadow is either a particle effect or clothing. 
* Fringe Items are to be added as either a particle effect or clothing.
* Shadows are NOT to be used on the Nude Models.
* Mob Sprites Can be used for NPCs as well
* Player Sprite Sheets can be used to create NPCs
* NPC Animations can be done by combining Player Sprite Sheet actions (i.e. chopping a log is the same as axe attack)
* Npcs are still not yet mobile.

=== Tilesets ===
[[Tileset development]]
* All tilesets should have the same amount of texture. Use the [https://github.com/themanaworld/tmwa-client-data/blob/master/graphics/tiles/forest.png New Forest Tileset] as reference
* Do not use visible outlines
* Do not use vanishing point projection. All objects have to be drawn in zero-point perspective ([[:Image:Vanishing point perspective.png|Example]])
* Use pure black (#000000) for "nothing"; eg, the tiles surrounding indoor or dungeon areas.
* Try to match the brightness and contrast of the reference tileset
** Outdoor: Woodland tileset
** Indoor: Woodland Indoor tileset
** Dungeons: Cave tileset
* All tiles on a single tileset should have the same warmth to them, unless it should specifically be otherwise.
* When adding to an existing tileset, try to use the same colours as much as possible to get the same feeling
* Sets need to be mapping complete (i.e. indoor.png, indoor_x2.png, etc.) to allow for fringe layering and to fix Scythe &amp; Christmas Tree hat.
* When adding a set naming convention should describe the terrain of the tiles not that location or content using all lowercase and - (i.e. woodland-graveyard-x2)
* Check Existing tilesets before creating a new tileset to see if you can extend current content.

== How to get your content in to the game ==

===Forum Method===
*Start a thread in the [https://forums.themanaworld.org/viewforum.php?f=2 forum], with a subject line beginning [WIP] (work in progress).
*Discuss it and edit it a few times until it's ready.
*You can bump your post if it gets buried too deep and reviewers cannot find it anymore, but don't abuse.
*If you don't want your art to get lost, submit it on GitLab directly.
*It'll be pushed to master once it's final version is approved.

== Tutorials ==
If you are not very experienced at creating pixel art, you should take a look at the following tutorials. You can learn many interesting tricks from them.

*[http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/ So You Want To Be A Pixel Artist by Tsugumo].
*[http://www.natomic.com/hosted/marks/mpat/ Mark's Pixel Art Tutorial]
*[http://www.derekyu.com/?page_id=218 Derek Yu's Pixel Art Tutorial]
*[http://pixel-zone.rpgdx.net/shtml/tutorials.shtml Pixel-Zone Tutorials]
*[http://www.pixeljoint.com/pixels/links.asp?id=2192 Pixel Art Links]
*[http://mruk.wordpress.com/2008/04/06/the-mana-world-pixelart-tutorial-desert-well/ Mruk's Desert Well Tutorial]
* [http://mruk.wordpress.com/2009/03/12/the-mana-world-tutorial-challanging-an-imposible-shape/ Mruk's Impossible Shape Design Tutorial]

[[Category:Development]]</text>
      <sha1>ce10ylz6bsqpdv9zc6xl9qk4l3ymb66</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Hercules server</title>
    <ns>0</ns>
    <id>8160</id>
    <redirect title="User:Alexanderlime/Evol-Hercules server" />
    <revision>
      <id>33299</id>
      <timestamp>2015-03-06T11:57:00Z</timestamp>
      <contributor>
        <username>Alexanderlime</username>
        <id>2382</id>
      </contributor>
      <comment>Alexanderlime moved page [[Dev:Hercules server]] to [[Dev:Evol-Hercules server]]</comment>
      <origin>33299</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="38" sha1="7xmv7jpim7yz82bjaz2hjw84qyy8st2" xml:space="preserve">#REDIRECT [[Dev:Evol-Hercules server]]</text>
      <sha1>7xmv7jpim7yz82bjaz2hjw84qyy8st2</sha1>
    </revision>
    <revision>
      <id>36407</id>
      <parentid>33299</parentid>
      <timestamp>2015-04-21T15:38:55Z</timestamp>
      <contributor>
        <username>Bock</username>
        <id>2299</id>
      </contributor>
      <minor/>
      <comment>double redirect</comment>
      <origin>36407</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="53" sha1="mz9lko1p1u0ai61wf1r7aouuo8v8qjp" xml:space="preserve">#REDIRECT [[User:Alexanderlime/Evol-Hercules_server]]</text>
      <sha1>mz9lko1p1u0ai61wf1r7aouuo8v8qjp</sha1>
    </revision>
    <revision>
      <id>59492</id>
      <parentid>36407</parentid>
      <timestamp>2024-03-27T03:56:44Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Hercules server]] to [[Development:Hercules server]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>36407</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="53" sha1="mz9lko1p1u0ai61wf1r7aouuo8v8qjp" xml:space="preserve">#REDIRECT [[User:Alexanderlime/Evol-Hercules_server]]</text>
      <sha1>mz9lko1p1u0ai61wf1r7aouuo8v8qjp</sha1>
    </revision>
  </page>
  <page>
    <title>Development:Home</title>
    <ns>0</ns>
    <id>12710</id>
    <redirect title="Dev:Main" />
    <revision>
      <id>52901</id>
      <timestamp>2020-11-12T11:31:03Z</timestamp>
      <contributor>
        <username>Jesusalva</username>
        <id>2520</id>
      </contributor>
      <comment>Redirected page to [[Dev:Main]]</comment>
      <origin>52901</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="22" sha1="jyk7vnv5m5t5gum6xovs3w8uc2ytkp3" xml:space="preserve">#REDIRECT [[Dev:Main]]</text>
      <sha1>jyk7vnv5m5t5gum6xovs3w8uc2ytkp3</sha1>
    </revision>
    <revision>
      <id>59494</id>
      <parentid>52901</parentid>
      <timestamp>2024-03-27T03:56:44Z</timestamp>
      <contributor>
        <username>Move page script</username>
        <id>2739</id>
      </contributor>
      <minor/>
      <comment>Move page script moved page [[Dev:Home]] to [[Development:Home]]: Rename Dev: to Development: so the miraheze import works</comment>
      <origin>52901</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="22" sha1="jyk7vnv5m5t5gum6xovs3w8uc2ytkp3" xml:space="preserve">#REDIRECT [[Dev:Main]]</text>
      <sha1>jyk7vnv5m5t5gum6xovs3w8uc2ytkp3</sha1>
    </revision>
  </page>
  <page>
    <title>Development:How to Develop</title>
    <ns>0</ns>
    <id>5220</id>
    <revision>
      <id>18725</id>
      <timestamp>2011-06-10T19:50:29Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>added how to develop info from Wombat user page</comment>
      <origin>18725</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3307" sha1="ehy268uvzf6ex90r0fgu8nobfq2jr8b" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

# Open a command line terminal (e.g. xterm or konsole).
# mkdir ~/tmw-ea (or other name you prefer your directory to be called).
# cd ~/tmw-ea
# git clone git://gitorious.org/tmw-eathena/mainline.git eathena
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-client-test.git tmwdata
# cd eathena
# make
# cd ../eathena-data
# ln -s ../eathena/{char-server,login-server,map-server,ladmin} .
# for F in *.example; do cp $F ${F/.example/}; done
# cp save/account.txt.example save/account.txt
# Edit conf/char_local.conf and change login_ip and char_ip to 127.0.0.1
# Edit conf/map_local.conf and change char_ip and map_ip to 127.0.0.1
# Edit conf/ladmin_local.conf and change login_ip to 127.0.0.1, login_port to 6901, and admin_pass to p1
# TODO give instructions about lan_support.conf and opening your server to access from other computers.
# cd conf
# ./build-magic
# Edit the second column of conf/spells-build to give usable names to spells.
# ./build-magic (again)
== Start the servers ==
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./char-server
# Repeat steps 1 and 2
# ./login-server
# Repeat steps 1 and 2.
# ./map-server

This should run all three of your servers.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

# cd ~/tmw-ea/eathena-data/tools/tmwcon
# ant
# ln -s ../.. server-data
# ln -s ../../../tmwdata tmwdata
# java Converter

==Making Monster, Item and Equipment Content==
==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making Git Patches and Submitting them For Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=</text>
      <sha1>ehy268uvzf6ex90r0fgu8nobfq2jr8b</sha1>
    </revision>
    <revision>
      <id>18740</id>
      <parentid>18725</parentid>
      <timestamp>2011-06-12T20:17:21Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>added link to testing server and the mana world workshop manual</comment>
      <origin>18740</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="3443" sha1="3njvzsc5trwntmndtenlaypb94x3j6q" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

# Open a command line terminal (e.g. xterm or konsole).
# mkdir ~/tmw-ea (or other name you prefer your directory to be called).
# cd ~/tmw-ea
# git clone git://gitorious.org/tmw-eathena/mainline.git eathena
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-client-test.git tmwdata
# cd eathena
# make
# cd ../eathena-data
# ln -s ../eathena/{char-server,login-server,map-server,ladmin} .
# for F in *.example; do cp $F ${F/.example/}; done
# cp save/account.txt.example save/account.txt
# Edit conf/char_local.conf and change login_ip and char_ip to 127.0.0.1
# Edit conf/map_local.conf and change char_ip and map_ip to 127.0.0.1
# Edit conf/ladmin_local.conf and change login_ip to 127.0.0.1, login_port to 6901, and admin_pass to p1
# TODO give instructions about lan_support.conf and opening your server to access from other computers.
# cd conf
# ./build-magic
# Edit the second column of conf/spells-build to give usable names to spells.
# ./build-magic (again)
== Start the servers ==
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./char-server
# Repeat steps 1 and 2
# ./login-server
# Repeat steps 1 and 2.
# ./map-server

This should run all three of your servers.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

# cd ~/tmw-ea/eathena-data/tools/tmwcon
# ant
# ln -s ../.. server-data
# ln -s ../../../tmwdata tmwdata
# java Converter

==Making Monster, Item and Equipment Content==
==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making Git Patches and Submitting them For Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>3njvzsc5trwntmndtenlaypb94x3j6q</sha1>
    </revision>
    <revision>
      <id>18775</id>
      <parentid>18740</parentid>
      <timestamp>2011-06-19T02:56:14Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Making Monster, Item and Equipment Content */</comment>
      <origin>18775</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="4322" sha1="lbw8b6rscdihvp7vncpal39n38vadq8" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

# Open a command line terminal (e.g. xterm or konsole).
# mkdir ~/tmw-ea (or other name you prefer your directory to be called).
# cd ~/tmw-ea
# git clone git://gitorious.org/tmw-eathena/mainline.git eathena
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-client-test.git tmwdata
# cd eathena
# make
# cd ../eathena-data
# ln -s ../eathena/{char-server,login-server,map-server,ladmin} .
# for F in *.example; do cp $F ${F/.example/}; done
# cp save/account.txt.example save/account.txt
# Edit conf/char_local.conf and change login_ip and char_ip to 127.0.0.1
# Edit conf/map_local.conf and change char_ip and map_ip to 127.0.0.1
# Edit conf/ladmin_local.conf and change login_ip to 127.0.0.1, login_port to 6901, and admin_pass to p1
# TODO give instructions about lan_support.conf and opening your server to access from other computers.
# cd conf
# ./build-magic
# Edit the second column of conf/spells-build to give usable names to spells.
# ./build-magic (again)
== Start the servers ==
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./char-server
# Repeat steps 1 and 2
# ./login-server
# Repeat steps 1 and 2.
# ./map-server

This should run all three of your servers.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

# cd ~/tmw-ea/eathena-data/tools/tmwcon
# ant
# ln -s ../.. server-data
# ln -s ../../../tmwdata tmwdata
# java Converter

==Making Monster, Item and Equipment Content==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Art Director makes art + xml for it with an [RC] tag.
* A2. Any developer, including the Art Director, can add [RC] content through a patch.
* A3. Art Director marks topic as [GIT].
* B. Art Director commits art and xml, then marks as [GIT].

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making Git Patches and Submitting them For Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>lbw8b6rscdihvp7vncpal39n38vadq8</sha1>
    </revision>
    <revision>
      <id>18776</id>
      <parentid>18775</parentid>
      <timestamp>2011-06-19T04:08:41Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Making Monster, Item and Equipment Content */</comment>
      <origin>18776</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5029" sha1="jykw23tapbed848bap3jp1iz2m9nwhw" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

# Open a command line terminal (e.g. xterm or konsole).
# mkdir ~/tmw-ea (or other name you prefer your directory to be called).
# cd ~/tmw-ea
# git clone git://gitorious.org/tmw-eathena/mainline.git eathena
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-client-test.git tmwdata
# cd eathena
# make
# cd ../eathena-data
# ln -s ../eathena/{char-server,login-server,map-server,ladmin} .
# for F in *.example; do cp $F ${F/.example/}; done
# cp save/account.txt.example save/account.txt
# Edit conf/char_local.conf and change login_ip and char_ip to 127.0.0.1
# Edit conf/map_local.conf and change char_ip and map_ip to 127.0.0.1
# Edit conf/ladmin_local.conf and change login_ip to 127.0.0.1, login_port to 6901, and admin_pass to p1
# TODO give instructions about lan_support.conf and opening your server to access from other computers.
# cd conf
# ./build-magic
# Edit the second column of conf/spells-build to give usable names to spells.
# ./build-magic (again)
== Start the servers ==
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./char-server
# Repeat steps 1 and 2
# ./login-server
# Repeat steps 1 and 2.
# ./map-server

This should run all three of your servers.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

# cd ~/tmw-ea/eathena-data/tools/tmwcon
# ant
# ln -s ../.. server-data
# ln -s ../../../tmwdata tmwdata
# java Converter

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Art Director makes art + xml for it with an [RC] tag.
* A2. Any developer, including the Art Director, can add [RC] content through a patch.
* A3. Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making Git Patches and Submitting them For Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>jykw23tapbed848bap3jp1iz2m9nwhw</sha1>
    </revision>
    <revision>
      <id>18777</id>
      <parentid>18776</parentid>
      <timestamp>2011-06-19T04:10:58Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <minor/>
      <comment>/* Steps */</comment>
      <origin>18777</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5065" sha1="h34mkjgwanwtpx40t00xkvvazmpzvq6" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

# Open a command line terminal (e.g. xterm or konsole).
# mkdir ~/tmw-ea (or other name you prefer your directory to be called).
# cd ~/tmw-ea
# git clone git://gitorious.org/tmw-eathena/mainline.git eathena
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-client-test.git tmwdata
# cd eathena
# make
# cd ../eathena-data
# ln -s ../eathena/{char-server,login-server,map-server,ladmin} .
# for F in *.example; do cp $F ${F/.example/}; done
# cp save/account.txt.example save/account.txt
# Edit conf/char_local.conf and change login_ip and char_ip to 127.0.0.1
# Edit conf/map_local.conf and change char_ip and map_ip to 127.0.0.1
# Edit conf/ladmin_local.conf and change login_ip to 127.0.0.1, login_port to 6901, and admin_pass to p1
# TODO give instructions about lan_support.conf and opening your server to access from other computers.
# cd conf
# ./build-magic
# Edit the second column of conf/spells-build to give usable names to spells.
# ./build-magic (again)
== Start the servers ==
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./char-server
# Repeat steps 1 and 2
# ./login-server
# Repeat steps 1 and 2.
# ./map-server

This should run all three of your servers.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

# cd ~/tmw-ea/eathena-data/tools/tmwcon
# ant
# ln -s ../.. server-data
# ln -s ../../../tmwdata tmwdata
# java Converter

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Art Director makes art + xml for it with an [RC] tag.
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making Git Patches and Submitting them For Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>h34mkjgwanwtpx40t00xkvvazmpzvq6</sha1>
    </revision>
    <revision>
      <id>18778</id>
      <parentid>18777</parentid>
      <timestamp>2011-06-19T04:15:06Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Steps */ more minor clean up, entry is new art process and further clarifications on steps were made.</comment>
      <origin>18778</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5093" sha1="kjuv1ap242z2zcgntff3e5oi3ta63d4" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

# Open a command line terminal (e.g. xterm or konsole).
# mkdir ~/tmw-ea (or other name you prefer your directory to be called).
# cd ~/tmw-ea
# git clone git://gitorious.org/tmw-eathena/mainline.git eathena
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-client-test.git tmwdata
# cd eathena
# make
# cd ../eathena-data
# ln -s ../eathena/{char-server,login-server,map-server,ladmin} .
# for F in *.example; do cp $F ${F/.example/}; done
# cp save/account.txt.example save/account.txt
# Edit conf/char_local.conf and change login_ip and char_ip to 127.0.0.1
# Edit conf/map_local.conf and change char_ip and map_ip to 127.0.0.1
# Edit conf/ladmin_local.conf and change login_ip to 127.0.0.1, login_port to 6901, and admin_pass to p1
# TODO give instructions about lan_support.conf and opening your server to access from other computers.
# cd conf
# ./build-magic
# Edit the second column of conf/spells-build to give usable names to spells.
# ./build-magic (again)
== Start the servers ==
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./char-server
# Repeat steps 1 and 2
# ./login-server
# Repeat steps 1 and 2.
# ./map-server

This should run all three of your servers.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

# cd ~/tmw-ea/eathena-data/tools/tmwcon
# ant
# ln -s ../.. server-data
# ln -s ../../../tmwdata tmwdata
# java Converter

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making Git Patches and Submitting them For Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>kjuv1ap242z2zcgntff3e5oi3ta63d4</sha1>
    </revision>
    <revision>
      <id>18805</id>
      <parentid>18778</parentid>
      <timestamp>2011-06-24T11:42:14Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Set Up */ added Ali-G's Development Guide + Link to README.mv.txt</comment>
      <origin>18805</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5518" sha1="02x59bxxmy8c447ljrru0gis3r0e2tx" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==

Here are the steps I use all the time when I want to make a new, fresh local testing server.
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server /usr/local/bin/''
* Close terminal.
* Open ~/tmw-ea/eathena-data/login/conf folder.
* Open '''login_local.conf.example''' and save it at the same place under '''login_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/conf folder.
* Open '''char_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''char_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/map/conf folder.
* Open '''help.txt.example''' and save it at the same place under '''help.txt'''.
* Open '''map_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''map_local.conf'''.
* Open ~/tmw-ea/eathena-data/login/save folder.
* Open '''account.txt.example''' and save it at the same place under '''account.txt'''.

You can now launch your test server.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana -u -d ~/tmw-ea/eathena-data/client-data''

You are now ready and able to do anything on your local test server.

This should run all three of your servers.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

# cd ~/tmw-ea/eathena-data/tools/tmwcon
# ant
# ln -s ../.. server-data
# ln -s ../../../tmwdata tmwdata
# java Converter

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making Git Patches and Submitting them For Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>02x59bxxmy8c447ljrru0gis3r0e2tx</sha1>
    </revision>
    <revision>
      <id>18806</id>
      <parentid>18805</parentid>
      <timestamp>2011-06-25T21:40:02Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>updated according to o11c's help</comment>
      <origin>18806</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6132" sha1="i8h19k4z68bov13j8xn301ef0c1eonb" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==

Here are the steps I use all the time when I want to make a new, fresh local testing server.
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server /usr/local/bin/''
* Close terminal.
* Open ~/tmw-ea/eathena-data/login/conf folder.
* Open '''login_local.conf.example''' and save it at the same place under '''login_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/conf folder.
* Open '''char_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''char_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/map/conf folder.
* Open '''help.txt.example''' and save it at the same place under '''help.txt'''.
* Open '''map_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''map_local.conf'''.
* Open ~/tmw-ea/eathena-data/login/save folder.
* Open '''account.txt.example''' and save it at the same place under '''account.txt'''.
* ''cd''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git checkout master''
* Close the terminal.

You can now launch your test server.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana -u -d ~/tmw-ea/eathena-data/client-data''

You are now free to do some changes, first close the client and your servers.
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ../eathena-data''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''

This should run all three of your servers.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>i8h19k4z68bov13j8xn301ef0c1eonb</sha1>
    </revision>
    <revision>
      <id>18807</id>
      <parentid>18806</parentid>
      <timestamp>2011-06-25T21:43:34Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <origin>18807</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6155" sha1="0f1g5vfay7e4u5owxirlu0eq4ifopqg" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==

Here are the steps to use when creating a new local testing server.
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server /usr/local/bin/''
* Close terminal.
* Open ~/tmw-ea/eathena-data/login/conf folder.
* Open '''login_local.conf.example''' and save it at the same place under '''login_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/conf folder.
* Open '''char_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''char_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/map/conf folder.
* Open '''help.txt.example''' and save it at the same place under '''help.txt'''.
* Open '''map_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''map_local.conf'''.
* Open ~/tmw-ea/eathena-data/login/save folder.
* Open '''account.txt.example''' and save it at the same place under '''account.txt'''.
* ''cd''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git checkout master''
* Close the terminal.

'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.

'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ../eathena-data''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>0f1g5vfay7e4u5owxirlu0eq4ifopqg</sha1>
    </revision>
    <revision>
      <id>18808</id>
      <parentid>18807</parentid>
      <timestamp>2011-06-25T21:44:29Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <origin>18808</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6186" sha1="8jahvr1zdc94br0grqjdk71cgmfwfuh" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==

Here are the steps to use when creating a new local testing server.
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server /usr/local/bin/''
* Close terminal.
* Open ~/tmw-ea/eathena-data/login/conf folder.
* Open '''login_local.conf.example''' and save it at the same place under '''login_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/conf folder.
* Open '''char_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''char_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/map/conf folder.
* Open '''help.txt.example''' and save it at the same place under '''help.txt'''.
* Open '''map_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''map_local.conf'''.
* Open ~/tmw-ea/eathena-data/login/save folder.
* Open '''account.txt.example''' and save it at the same place under '''account.txt'''.
* ''cd''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git checkout master''
* Close the terminal.

'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.

'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ../eathena-data''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>8jahvr1zdc94br0grqjdk71cgmfwfuh</sha1>
    </revision>
    <revision>
      <id>18812</id>
      <parentid>18808</parentid>
      <timestamp>2011-06-26T08:40:37Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <origin>18812</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6164" sha1="8ocpypz5q2wque2kf8beyd1b1slmd7f" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==

Here are the steps to use when creating a new local testing server.
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server /usr/local/bin/''
* ''cd''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git checkout master''
* Close terminal.
* Open ~/tmw-ea/eathena-data/login/conf folder.
* Open '''login_local.conf.example''' and save it at the same place under '''login_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/conf folder.
* Open '''char_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''char_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/map/conf folder.
* Open '''help.txt.example''' and save it at the same place under '''help.txt'''.
* Open '''map_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''map_local.conf'''.
* Open ~/tmw-ea/eathena-data/login/save folder.
* Open '''account.txt.example''' and save it at the same place under '''account.txt'''.

'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.

'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ../eathena-data''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>8ocpypz5q2wque2kf8beyd1b1slmd7f</sha1>
    </revision>
    <revision>
      <id>18813</id>
      <parentid>18812</parentid>
      <timestamp>2011-06-26T08:43:18Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <origin>18813</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6064" sha1="9ofyzljht04e21jw23zv5wf5olhfrbt" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==

Here are the steps to use when creating a new local testing server.
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server /usr/local/bin/''
* ''cd''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git checkout master''
* Close terminal.
* Open ~/tmw-ea/eathena-data/world/conf folder.
* Open '''char_local.conf.example''' and save it at the same place under '''char_local.conf'''.
* Open ~/tmw-ea/eathena-data/login/conf folder.
* Open '''login_local.conf.example''' and save it at the same place under '''login_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/map/conf folder.
* Open '''map_local.conf.example''' and save it at the same place under '''map_local.conf'''.
* Open '''help.txt.example''' and save it at the same place under '''help.txt'''.
* Open ~/tmw-ea/eathena-data/login/save folder.
* Open '''account.txt.example''' and save it at the same place under '''account.txt'''.

'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.

'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ../eathena-data''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>9ofyzljht04e21jw23zv5wf5olhfrbt</sha1>
    </revision>
    <revision>
      <id>18814</id>
      <parentid>18813</parentid>
      <timestamp>2011-06-26T08:46:39Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <origin>18814</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6073" sha1="3chpy2u4j5cb8yd8z3u75iol9bgevnj" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server /usr/local/bin/''
* ''cd''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git checkout master''
* Close terminal.
* Open ~/tmw-ea/eathena-data/world/conf folder.
* Open '''char_local.conf.example''' and save it at the same place under '''char_local.conf'''.
* Open ~/tmw-ea/eathena-data/login/conf folder.
* Open '''login_local.conf.example''' and save it at the same place under '''login_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/map/conf folder.
* Open '''map_local.conf.example''' and save it at the same place under '''map_local.conf'''.
* Open '''help.txt.example''' and save it at the same place under '''help.txt'''.
* Open ~/tmw-ea/eathena-data/login/save folder.
* Open '''account.txt.example''' and save it at the same place under '''account.txt'''.


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ../eathena-data''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>3chpy2u4j5cb8yd8z3u75iol9bgevnj</sha1>
    </revision>
    <revision>
      <id>18832</id>
      <parentid>18814</parentid>
      <timestamp>2011-06-27T08:24:39Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Set Up Own Server */</comment>
      <origin>18832</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6107" sha1="r1vqc25oebr9nvjvw4uiffbhgtcmuqj" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server /usr/local/bin/''
* ''cd''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git submodule update --init''
* ''git checkout master''
* Close terminal.
* Open ~/tmw-ea/eathena-data/world/conf folder.
* Open '''char_local.conf.example''' and save it at the same place under '''char_local.conf'''.
* Open ~/tmw-ea/eathena-data/login/conf folder.
* Open '''login_local.conf.example''' and save it at the same place under '''login_local.conf'''.
* Open ~/tmw-ea/eathena-data/world/map/conf folder.
* Open '''map_local.conf.example''' and save it at the same place under '''map_local.conf'''.
* Open '''help.txt.example''' and save it at the same place under '''help.txt'''.
* Open ~/tmw-ea/eathena-data/login/save folder.
* Open '''account.txt.example''' and save it at the same place under '''account.txt'''.


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ../eathena-data''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>r1vqc25oebr9nvjvw4uiffbhgtcmuqj</sha1>
    </revision>
    <revision>
      <id>18850</id>
      <parentid>18832</parentid>
      <timestamp>2011-06-27T20:17:59Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Set Up Own Server */ Simplify</comment>
      <origin>18850</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5475" sha1="tjs77xjjnuxditl71seyb5zfetypp6y" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)'' )
* ''git commit''
* ''git push''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data
# ./ladmin
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>tjs77xjjnuxditl71seyb5zfetypp6y</sha1>
    </revision>
    <revision>
      <id>18851</id>
      <parentid>18850</parentid>
      <timestamp>2011-06-27T20:21:51Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>Add ladmin steps</comment>
      <origin>18851</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5501" sha1="e630jhzkgj2dq1k6x2uekoa3wqm9zsd" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)'' )
* ''git commit''
* ''git push''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>e630jhzkgj2dq1k6x2uekoa3wqm9zsd</sha1>
    </revision>
    <revision>
      <id>18868</id>
      <parentid>18851</parentid>
      <timestamp>2011-06-28T17:47:56Z</timestamp>
      <contributor>
        <username>Alige</username>
        <id>1888</id>
      </contributor>
      <comment>added how to pull data</comment>
      <origin>18868</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5683" sha1="mgki6ujq7v25u9s7xv38rqucmo1gnkd" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org''
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)'' )
* ''git commit''
* ''git push''
* Close the terminal.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==

===Steps===
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

====Handling General Content Team [REQ]s====
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]
=Using the Git Repositories=
==Making and Submitting Git Patches for Review==
==Reviewing Git Patches and Pushing==
==Git Branches, Git Merging==
=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>mgki6ujq7v25u9s7xv38rqucmo1gnkd</sha1>
    </revision>
    <revision>
      <id>18869</id>
      <parentid>18868</parentid>
      <timestamp>2011-06-28T20:37:33Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>step on adding patches and some cleanup based on current layout</comment>
      <origin>18869</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5819" sha1="kg5k7koseyvpj6ig0bipyctodk0drj0" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' '''*'''
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)'' )
* ''git commit''
* ''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].
* ''git push'' '''*'''
* Close the terminal.

'''* :''' a step for those with commit access to the gitorious repositories.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Making Art Content==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and makes/requests xml for it.
* A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
* A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
* A3. Once pushed, Art Director marks topic as [GIT].
* or
* B. Art Director commits art and xml, then marks as [GIT].
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>kg5k7koseyvpj6ig0bipyctodk0drj0</sha1>
    </revision>
    <revision>
      <id>18870</id>
      <parentid>18869</parentid>
      <timestamp>2011-06-29T09:23:16Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Making Art Content */ process clarified and amended on art content</comment>
      <origin>18870</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5803" sha1="fgl1frdwc0w6lvnp1jb4lkfc7bqis10" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' '''*'''
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push''
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)'' )
* ''git commit''
* ''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].
* ''git push'' '''*'''
* Close the terminal.

'''* :''' a step for those with commit access to the gitorious repositories.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>fgl1frdwc0w6lvnp1jb4lkfc7bqis10</sha1>
    </revision>
    <revision>
      <id>18871</id>
      <parentid>18870</parentid>
      <timestamp>2011-06-29T19:02:54Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Set Up Own Server */ cleanup</comment>
      <origin>18871</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5861" sha1="01hogfhzwcu4nvms6g3uc2gjagdm990" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' '''*'''
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' '''*'''
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)'' )
* ''git commit''
* ''git push'' '''*'''
* Close the terminal.

'''* :''' a step for those with commit access to the gitorious repositories.  For others, please make a patch on marked steps.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>01hogfhzwcu4nvms6g3uc2gjagdm990</sha1>
    </revision>
    <revision>
      <id>18872</id>
      <parentid>18871</parentid>
      <timestamp>2011-06-29T19:05:34Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Set Up Own Server */ Further clarification.</comment>
      <origin>18872</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="5931" sha1="5xs2st9157y0c306eb1goa1o38077c5" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' '''*'''
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' '''*'''
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)'' )
* ''git commit''
* ''git push'' '''*'''
* Close the terminal.

'''* :''' a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>5xs2st9157y0c306eb1goa1o38077c5</sha1>
    </revision>
    <revision>
      <id>18889</id>
      <parentid>18872</parentid>
      <timestamp>2011-07-04T10:15:46Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Set Up Own Server */ Making a GM guide added</comment>
      <origin>18889</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6541" sha1="3prk9v6ifyfi1hlqgmye50mgmv425gx" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' '''*'''
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
* Launch your test server and register an account.
* Open a text editor.
* Open ~/tmw-ea/eathena-data/login/save/account.txt and ../gm_account.txt.
* Copy the ''2000000'' from your account.txt next to your account name and paste it on the second line of gm_account.txt, hit spacebar, enter ''99'' so it reads on the second line: ''2000000 99''.  The 2000000 is an account number, other accounts can be made GM by copying their account number and giving the account an appropriate amount of permissions on your server.  

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' '''*'''
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)'' )
* ''git commit''
* ''git push'' '''*'''
* Close the terminal.

'''* :''' a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>3prk9v6ifyfi1hlqgmye50mgmv425gx</sha1>
    </revision>
    <revision>
      <id>18898</id>
      <parentid>18889</parentid>
      <timestamp>2011-07-04T23:00:14Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Set Up Own Server */ Fix footnotes and "add GM" method</comment>
      <origin>18898</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6257" sha1="sjswfhlmwoicfkuethyewz4zhub7vin" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {ref|push} {ref|once}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]</text>
      <sha1>sjswfhlmwoicfkuethyewz4zhub7vin</sha1>
    </revision>
    <revision>
      <id>18899</id>
      <parentid>18898</parentid>
      <timestamp>2011-07-07T12:37:22Z</timestamp>
      <contributor>
        <username>Argul</username>
        <id>1858</id>
      </contributor>
      <comment>Add troubleshoot section linking to other artcles</comment>
      <origin>18899</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6394" sha1="eqgafdni4fs4yuihw7p7s4rt3vb0bz6" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {ref|push} {ref|once}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

==Trouble Shooting==
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>eqgafdni4fs4yuihw7p7s4rt3vb0bz6</sha1>
    </revision>
    <revision>
      <id>18900</id>
      <parentid>18899</parentid>
      <timestamp>2011-07-07T12:37:41Z</timestamp>
      <contributor>
        <username>Argul</username>
        <id>1858</id>
      </contributor>
      <comment>/* Trouble Shooting */</comment>
      <origin>18900</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6392" sha1="8ix1m8aq1hmqkv3pky2gg8lhwdtou2s" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {ref|push} {ref|once}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>8ix1m8aq1hmqkv3pky2gg8lhwdtou2s</sha1>
    </revision>
    <revision>
      <id>18901</id>
      <parentid>18900</parentid>
      <timestamp>2011-07-07T19:45:13Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Set Up Own Server */</comment>
      <origin>18901</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6611" sha1="tapev6cpnxedrhubxwyrt90kvanjg4u" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {ref|push} {ref|once}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administation ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>tapev6cpnxedrhubxwyrt90kvanjg4u</sha1>
    </revision>
    <revision>
      <id>18928</id>
      <parentid>18901</parentid>
      <timestamp>2011-07-10T11:11:00Z</timestamp>
      <contributor>
        <username>Freeyorp</username>
        <id>1501</id>
      </contributor>
      <minor/>
      <comment>Fix a typo</comment>
      <origin>18928</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6612" sha1="8u2nqgao81ezaprz8emgo3hvgan4d9y" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {ref|push} {ref|once}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>8u2nqgao81ezaprz8emgo3hvgan4d9y</sha1>
    </revision>
    <revision>
      <id>18930</id>
      <parentid>18928</parentid>
      <timestamp>2011-07-11T18:34:56Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <minor/>
      <comment>formatting issues fix</comment>
      <origin>18930</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6617" sha1="st6dsl51w8k9xrgywd2t47j9npg8ymx" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>st6dsl51w8k9xrgywd2t47j9npg8ymx</sha1>
    </revision>
    <revision>
      <id>18937</id>
      <parentid>18930</parentid>
      <timestamp>2011-07-13T19:34:54Z</timestamp>
      <contributor>
        <username>Wombat</username>
        <id>1239</id>
      </contributor>
      <comment>/* Set Up Own Server */</comment>
      <origin>18937</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6658" sha1="8oe2j9163wv111yhz5vhefqf4tj0msd" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client.  Other OS and clients may differ.  Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server.  After getting these, you can both test current development and begin development in the direction you find most fitting.

'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.

==Set Up Own Server==


'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99

== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.



=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>8oe2j9163wv111yhz5vhefqf4tj0msd</sha1>
    </revision>
    <revision>
      <id>18974</id>
      <parentid>18937</parentid>
      <timestamp>2011-07-24T12:54:31Z</timestamp>
      <contributor>
        <username>Hal9000</username>
        <id>2105</id>
      </contributor>
      <comment>/* Set Up */</comment>
      <origin>18974</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6634" sha1="88m8lqzhzbnr8yydw7j2ivlqriimjvg" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
Bison, Flex and zLib dependencies are usually needed.

'''Ubuntu 11.04:'''
* Open a terminal.
* ''sudo apt-get install zlib1g-dev flex bison''


==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C HEAD^''
* pastebin the patch and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums].


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.


== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>88m8lqzhzbnr8yydw7j2ivlqriimjvg</sha1>
    </revision>
    <revision>
      <id>19762</id>
      <parentid>18974</parentid>
      <timestamp>2011-08-22T18:06:35Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Set Up Own Server */ Clarify the rules for multi-patch changes</comment>
      <origin>19762</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6907" sha1="8vr2w8ngq4bw0l6egj9g7xp1xt0uv40" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
Bison, Flex and zLib dependencies are usually needed.

'''Ubuntu 11.04:'''
* Open a terminal.
* ''sudo apt-get install zlib1g-dev flex bison''


==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>8vr2w8ngq4bw0l6egj9g7xp1xt0uv40</sha1>
    </revision>
    <revision>
      <id>20115</id>
      <parentid>19762</parentid>
      <timestamp>2011-09-16T00:36:11Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Dependencies */ Update dependencies to be more accurate, and remove zlib since the update</comment>
      <origin>20115</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="6971" sha1="fte2g5hfgt8er4r3u8yhz33gdcqei1d" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>fte2g5hfgt8er4r3u8yhz33gdcqei1d</sha1>
    </revision>
    <revision>
      <id>20116</id>
      <parentid>20115</parentid>
      <timestamp>2011-09-16T00:38:57Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Set Up Own Server */ Add note about make 3.82</comment>
      <origin>20116</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7275" sha1="f53wgpvlicrq7lm80wms8z4or0n05d8" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* If you are running and older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>f53wgpvlicrq7lm80wms8z4or0n05d8</sha1>
    </revision>
    <revision>
      <id>20612</id>
      <parentid>20116</parentid>
      <timestamp>2011-09-25T20:40:27Z</timestamp>
      <contributor>
        <username>Frost</username>
        <id>1872</id>
      </contributor>
      <minor/>
      <comment>/* Set Up Own Server */ Added more operating systems which don't have GNU make 3.82. In fact, few distros do have it.</comment>
      <origin>20612</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7307" sha1="pdk5z9gksb57ol311f8g62u91tpr5db" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* If you are running and older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian, Ubuntu, Redhat, SuSE, Knoppix, and Cygwin in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ~/tmw-ea/eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* ''git submodule update --merge''
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>pdk5z9gksb57ol311f8g62u91tpr5db</sha1>
    </revision>
    <revision>
      <id>21600</id>
      <parentid>20612</parentid>
      <timestamp>2011-10-15T22:16:09Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Set Up Own Server */ Add symlinked git hooks</comment>
      <origin>21600</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7552" sha1="6gp1mkzk60j1arp3kufsvd7nbzvu6z2" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/''
* ''cd eathena/''
* If you are running and older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian, Ubuntu, Redhat, SuSE, Knoppix, and Cygwin in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>6gp1mkzk60j1arp3kufsvd7nbzvu6z2</sha1>
    </revision>
    <revision>
      <id>22272</id>
      <parentid>21600</parentid>
      <timestamp>2011-10-31T16:21:11Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Set Up Own Server */ fix instructions regarding git hooks so you're in the correct directory.</comment>
      <origin>22272</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7552" sha1="4ohiw0degkfbt2rfu0ckpzmp9zuou5l" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
* ''cd eathena/''
* If you are running and older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian, Ubuntu, Redhat, SuSE, Knoppix, and Cygwin in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the gitorious repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>4ohiw0degkfbt2rfu0ckpzmp9zuou5l</sha1>
    </revision>
    <revision>
      <id>23502</id>
      <parentid>22272</parentid>
      <timestamp>2012-02-16T20:30:25Z</timestamp>
      <contributor>
        <username>Jenalya</username>
        <id>1876</id>
      </contributor>
      <comment>Update the url for the content repository</comment>
      <origin>23502</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7543" sha1="nzdoeopmgratnn1xpezqdp7a29idddo" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running and older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian, Ubuntu, Redhat, SuSE, Knoppix, and Cygwin in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>nzdoeopmgratnn1xpezqdp7a29idddo</sha1>
    </revision>
    <revision>
      <id>23625</id>
      <parentid>23502</parentid>
      <timestamp>2012-03-31T16:43:22Z</timestamp>
      <contributor>
        <username>Frost</username>
        <id>1872</id>
      </contributor>
      <comment>/* Set Up Own Server */ RH and Cygwin now have make 3.82. Also added step for cygwin lex-&gt;flex</comment>
      <origin>23625</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7592" sha1="1p7q2vof8efagz5vld1ozzbje5zn208" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running and older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu, in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* If you use cygwin, run the following command now: ''ln -s flex /usr/bin/lex''
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>1p7q2vof8efagz5vld1ozzbje5zn208</sha1>
    </revision>
    <revision>
      <id>23635</id>
      <parentid>23625</parentid>
      <timestamp>2012-04-21T19:40:50Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Set Up Own Server */ Update instructions (flex fix pushed and an github pushinsteadof for main contributors (although they obviously haven't had any problems so far))</comment>
      <origin>23635</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7615" sha1="8ujmvbqphqteznts2poddogtrt6qid0" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running and older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu, in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''git config --global url.git@github.com:.pushInsteadOf git://github.com'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>8ujmvbqphqteznts2poddogtrt6qid0</sha1>
    </revision>
    <revision>
      <id>23675</id>
      <parentid>23635</parentid>
      <timestamp>2012-05-06T09:07:01Z</timestamp>
      <contributor>
        <username>Peablog</username>
        <id>2134</id>
      </contributor>
      <minor/>
      <comment>/* Set Up Own Server */</comment>
      <origin>23675</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7614" sha1="bzpe9ehz5psom2auzakqe7ts5ivkcog" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running an older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu, in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''git config --global url.git@github.com:.pushInsteadOf git://github.com'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Java Converter Tool===
This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data.  The README addresses dependencies for using this tool.  It suggests there are other ways it can work in the README, if this method does work for you.

Edit your map and save it. You can push the client data now. Now, you need to run the converter.
# cd ~/tmw-ea/eathena-data/
# make maps
After that, commit and push the files that the converter edited.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>bzpe9ehz5psom2auzakqe7ts5ivkcog</sha1>
    </revision>
    <revision>
      <id>24034</id>
      <parentid>23675</parentid>
      <timestamp>2012-07-21T16:41:40Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Java Converter Tool */ was rewritten in python</comment>
      <origin>24034</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7472" sha1="okvbe0t06jgulbhdrbwgcprf90o1srd" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running an older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu, in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo cp login-server char-server map-server ladmin /usr/local/bin/''
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''git config --global url.git@github.com:.pushInsteadOf git://github.com'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/''
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Python Converter Tool===
After editing maps for the client, you need to generate the walkmaps and imports for the server.

To run it, just do:

# cd ~/tmw-ea/eathena-data/
# make maps

After that, commit and push the files that the converter edited. Note that, if you do not have push access to the main repository, you should let someone else update the submodule itself.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>okvbe0t06jgulbhdrbwgcprf90o1srd</sha1>
    </revision>
    <revision>
      <id>24064</id>
      <parentid>24034</parentid>
      <timestamp>2012-08-02T05:12:49Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>/* Set Up Own Server */ update instructions a bit</comment>
      <origin>24064</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7704" sha1="teclpd1w35l9eexl1aiibwr5nn2c1s3" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running an older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu, in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo make install'' (you can use prefix=/path to install somewhere other than /usr/local)
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''git config --global url.git@github.com:.pushInsteadOf git://github.com'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/'' (git 1.7.8 or newer)
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/'' (git 1.7.7 or older)
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.

(This is kind of outdated; with github it's often easier to do patches on branches there)


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
===Python Converter Tool===
After editing maps for the client, you need to generate the walkmaps and imports for the server.

To run it, just do:

# cd ~/tmw-ea/eathena-data/
# make maps

After that, commit and push the files that the converter edited. Note that, if you do not have push access to the main repository, you should let someone else update the submodule itself.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]

=Using the Test Server=
*[[Testing Server]]
=Using The Mana World Workshop=
*[http://locke.suu.edu/~adams/mana/workshop/manual/ The Mana World Workshop Manual]

=Trouble Shooting=
see [http://wiki.themanaworld.org/index.php/Setting_up_eAthena_on_Linux#Troubleshooting for Linux Troubleshooting]</text>
      <sha1>teclpd1w35l9eexl1aiibwr5nn2c1s3</sha1>
    </revision>
    <revision>
      <id>24065</id>
      <parentid>24064</parentid>
      <timestamp>2012-08-02T05:15:44Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>Remove dead link and old link, and link to [[Mapping Tutorial]]</comment>
      <origin>24065</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7434" sha1="bvk0kc4ghqob3uylyhdp2rjf5cinkyj" xml:space="preserve">=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running an older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu, in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo make install'' (you can use prefix=/path to install somewhere other than /usr/local)
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''git config --global url.git@github.com:.pushInsteadOf git://github.com'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/'' (git 1.7.8 or newer)
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/'' (git 1.7.7 or older)
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.

(This is kind of outdated; with github it's often easier to do patches on branches there)


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
See [[Mapping Tutorial]].
===Python Converter Tool===
After editing maps for the client, you need to generate the walkmaps and imports for the server.

To run it, just do:

# cd ~/tmw-ea/eathena-data/
# make maps

After that, commit and push the files that the converter edited. Note that, if you do not have push access to the main repository, you should let someone else update the submodule itself.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]</text>
      <sha1>bvk0kc4ghqob3uylyhdp2rjf5cinkyj</sha1>
    </revision>
    <revision>
      <id>24070</id>
      <parentid>24065</parentid>
      <timestamp>2012-08-04T19:29:21Z</timestamp>
      <contributor>
        <username>Jenalya</username>
        <id>1876</id>
      </contributor>
      <minor/>
      <comment>Add link to Working_With_Git</comment>
      <origin>24070</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7619" sha1="b9adc7gvkw3krws5f2grstruen0gv7z" xml:space="preserve">We're using Git as version control system for our source files and content. Have a look at our [http://wiki.themanaworld.org/index.php/Working_With_Git Tutorial] about how to use git. 
=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running an older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu, in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo make install'' (you can use prefix=/path to install somewhere other than /usr/local)
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''git config --global url.git@github.com:.pushInsteadOf git://github.com'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/'' (git 1.7.8 or newer)
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/'' (git 1.7.7 or older)
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.

(This is kind of outdated; with github it's often easier to do patches on branches there)


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
See [[Mapping Tutorial]].
===Python Converter Tool===
After editing maps for the client, you need to generate the walkmaps and imports for the server.

To run it, just do:

# cd ~/tmw-ea/eathena-data/
# make maps

After that, commit and push the files that the converter edited. Note that, if you do not have push access to the main repository, you should let someone else update the submodule itself.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]</text>
      <sha1>b9adc7gvkw3krws5f2grstruen0gv7z</sha1>
    </revision>
    <revision>
      <id>24071</id>
      <parentid>24070</parentid>
      <timestamp>2012-08-04T19:29:55Z</timestamp>
      <contributor>
        <username>Jenalya</username>
        <id>1876</id>
      </contributor>
      <minor/>
      <comment>Use upper case for 'Git'</comment>
      <origin>24071</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7619" sha1="de5vfxr5841aid8e8daeeogwq1ph4wf" xml:space="preserve">We're using Git as version control system for our source files and content. Have a look at our [http://wiki.themanaworld.org/index.php/Working_With_Git Tutorial] about how to use Git. 
=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running an older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu, in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo make install'' (you can use prefix=/path to install somewhere other than /usr/local)
* ''git config --global url.git@gitorious.org:.pushInsteadOf git://gitorious.org'' {{ref|push}} {{ref|once}}
* ''git config --global url.git@github.com:.pushInsteadOf git://github.com'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/'' (git 1.7.8 or newer)
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/'' (git 1.7.7 or older)
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open another terminal.
* ''mana --server localhost --port 6901 -u -d ~/tmw-ea/eathena-data/client-data''
This should run all three of your servers and the client.


'''Make yourself a GM so you can test changes made.'''
See [[#Administration]]

'''See also:''' [[GM Commands]]


'''You are now free to do some changes, first close the client and your servers.'''

'''''Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push "client-data" when it shows "(new commits)" in your server-data 3) commit and push other server data changes.'''''
* Make your modifications (e.g. Change a map) and save them.
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/client-data''
* ''git status''
* ''git add [modified files]''
* ''git commit''
* ''git push'' {{note|push}}
* ''cd ..''
* ''make maps'' (if you changed a map)
* ''git status''
* ''git add [modified files]''
* ''git add client-data'' (if ''git status'' shows ''(new commits)''. '''Don't do this if you don't have push access to client-data!''')
* ''git commit''
* ''git push'' {{note|push}}
* Close the terminal.

{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don't need to reconfigure your clone and please make a patch on steps where ''git push'' is suggested.  

{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.

*''git format-patch -M -C origin/master''
* pastebin the patch(es) and post for review at irc.themanaworld.org channel: #tmw-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. '''Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.''' In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.

(This is kind of outdated; with github it's often easier to do patches on branches there)


'''You can also pull the data which has been modified.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data''
* ''git pull''
* If you haven't installed the hook, ''git submodule update --merge'' at toplevel (for client-data) and in client-data (for music)
* Close the terminal.

'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.

== Administration ==
# Start the servers.
# Open a command line terminal.
# cd ~/tmw-ea/eathena-data/login
# ladmin (not ./ladmin)
# add username M password
# gm username 99


== Connecting ==
# Open a command line terminal.
# Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

=Making Content=
==Making Map Content==
See [[Mapping Tutorial]].
===Python Converter Tool===
After editing maps for the client, you need to generate the walkmaps and imports for the server.

To run it, just do:

# cd ~/tmw-ea/eathena-data/
# make maps

After that, commit and push the files that the converter edited. Note that, if you do not have push access to the main repository, you should let someone else update the submodule itself.

==Getting Art Content Into The Game==
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].
* Work with the Art Director and collaborators on getting the art consistent.
* When finished, edit topic as [FND].
* Art Director approves [FND] art and marks it [RC].  Should the art need animation or special effect, the Art Director requests xml for it.  If not, the Art Director commits it and marks as [GIT].
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.
* Project developer requests database entry reservations from a General Content Team developer.
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
::* Map entry client data affected: .tmx files in the maps directory.
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.

===Handling General Content Team [REQ]s===
* General Content Team member adds a [REQ] topic to the graphics development forum.
* General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the [[Art in Development]] page.
* Art Director attempts to network with other artists to assign the art to an artist.

==Bit Masking==
Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing. 

[http://dl.dropbox.com/u/6520164/tester1.txt Bit Masking Test Script]</text>
      <sha1>de5vfxr5841aid8e8daeeogwq1ph4wf</sha1>
    </revision>
    <revision>
      <id>24700</id>
      <parentid>24071</parentid>
      <timestamp>2012-10-19T21:18:50Z</timestamp>
      <contributor>
        <username>O11c</username>
        <id>2047</id>
      </contributor>
      <comment>Change tmw-eathena on gitorious to tmwa on github</comment>
      <origin>24700</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="7504" sha1="hhe1o4u99adc304hx17wh8krjn3a6ik" xml:space="preserve">We're using Git as version control system for our source files and content. Have a look at our [http://wiki.themanaworld.org/index.php/Working_With_Git Tutorial] about how to use Git. 
=Set Up=
This is a how to help content development for official TMW-eA using Ubuntu and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.


==Dependencies==
In addition to the basic build tools (GCC, Make, headers, ...), Bison, and Flex are needed.

'''Debian derivates (including Ubuntu)'''
* Open a terminal.
* ''sudo apt-get install build-essential flex bison''

==Set Up Own Server==
'''Here are the steps to use when creating a new local testing server.'''
* Open a terminal.
* ''mkdir ~/tmw-ea''
* ''cd ~/tmw-ea/''
* ''git clone git://github.com/themanaworld/tmwa.git eathena''
* ''git clone --recursive git://github.com/themanaworld/tmwa-server-data.git eathena-data''
* ''cd eathena/''
* If you are running an older version of make: ''mkdir -p obj/{common,login,char,map,ladmin,tool}''. Debian and Ubuntu, in particular are famous for still not having Make 3.82, which is a much more compliant implementation. If you are technically inclined, I recommend installing it in /usr/local. -o11c
* ''make''
* ''sudo make install'' (you can use prefix=/path to install somewhere other than /usr/local)
* ''git config --global url.git@github.com:.pushInsteadOf git://github.com'' {{ref|push}} {{ref|once}}
* ''cd ../eathena-data''
* Preferably, add the update hooks.
** ''ln -s ../../git/hooks/post-merge .git/hooks/''
** ''ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/'' (git 1.7.8 or newer)
** ''ln -s ../../../git/hooks/post-merge client-data/.git/hooks/'' (git 1.7.7 or older)
* ''make conf''
* ''cd client-data''
* ''git checkout master''
* ''cd music''
* ''git checkout master''


'''You can now launch your test server.'''
* Open a terminal.
* ''cd ~/tmw-ea/eathena-data/''
* ''./char-server&amp; ./login-server&amp; ./map-server&amp;''
* Open 