<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://oldwiki.devbox.themanaworld.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tomminator</id>
	<title>The Mana World - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://oldwiki.devbox.themanaworld.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tomminator"/>
	<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/wiki/Special:Contributions/Tomminator"/>
	<updated>2026-05-06T07:51:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=45932</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=45932"/>
		<updated>2019-01-18T18:37:32Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: add libssl and libcrypto as a dependency&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Start for local server ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Create ssh key and upload it ====&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install Dependencies ====&lt;br /&gt;
&lt;br /&gt;
Depending on what sql and OS your using install Maria or Mysql packages:&lt;br /&gt;
 * Maria packages: mariadb-server, mariadb-client, mariadbclient-dev, libmariadbclient-dev&lt;br /&gt;
 * Mysql packages: mysqldb-server, mysqldb-client, mysqlclient-dev, libmysqlclient-dev&lt;br /&gt;
&lt;br /&gt;
All these other dependencies need to be installed regardless of sql used:&lt;br /&gt;
 * zlib-dev or zlib1g-dev package, libpcre-dev, gcc, make, automake, autoconf, libtool&lt;br /&gt;
&lt;br /&gt;
Some distributions also require manual installation of ssl and crypto packages:&lt;br /&gt;
 * libssl-dev, libcrypto++-dev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Init repos ====&lt;br /&gt;
&lt;br /&gt;
In evol-all directory run command&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Build and set-up local server ====&lt;br /&gt;
&lt;br /&gt;
In directory server-data in evol-all run the following command&lt;br /&gt;
&amp;lt;code&amp;gt;make new&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Register an Account via M+ on localserver &amp;amp; GM account ====&lt;br /&gt;
&lt;br /&gt;
Set-up M+ to log into localserver:&lt;br /&gt;
&lt;br /&gt;
Name: My Dev&lt;br /&gt;
&lt;br /&gt;
Address: 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
Port: 6901&lt;br /&gt;
&lt;br /&gt;
Server type: Evol2&lt;br /&gt;
&lt;br /&gt;
Once connected select the register button &amp;amp; sign up for an account&lt;br /&gt;
&lt;br /&gt;
Once registered, test by logging into the server.&lt;br /&gt;
&lt;br /&gt;
Now you should be able to give that account GM by running&lt;br /&gt;
&amp;lt;code&amp;gt;make givegm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now have a working Local server with GM 99 on your account.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Additional steps you may need for development (Advanced) ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[#ManaPlus|1.3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[#Run manaplus or client data / art / maps etc. development|1.3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
==== Install and configure mariadb server ====&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
====Run client and connect to server ====&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
====Upgrade repository urls ====&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Making Content==&lt;br /&gt;
===Making Map Content===&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
====Python Converter Tool====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Getting Art Content Into The Game===&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
====Handling General Content Team [REQ]s====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
===Bit Masking===&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
===Generating client updates===&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd /evol-all/tools/update/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
addmods.sh  adler32.c       commit.txt       createnew.sh  musiccommit.txt  update_music.sh&lt;br /&gt;
adler32     commit_old.txt  create_music.sh  files         news.txt         update.sh End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s &amp;lt;Path to Public Webserver Dir&amp;gt; /evol-all/tools/update/upload/&lt;br /&gt;
&lt;br /&gt;
example: ln -s /var/www/updates /evol-all/tools/update/upload/&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
edit /evol-all/server-data/conf/import/login-server.conf &lt;br /&gt;
&lt;br /&gt;
Change update_server to reflect the hostname &amp;amp; location of the server updates.&lt;br /&gt;
&lt;br /&gt;
TMW&#039;s test-server example:&lt;br /&gt;
&amp;lt;code&amp;gt;update_server: &amp;quot;http://updates.themanaworld.org/test-updates/&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now we can make us a update.&lt;br /&gt;
 cd /evol-all/server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd /evol-all/server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #evol-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Revolt:Stats&amp;diff=44120</id>
		<title>Revolt:Stats</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Revolt:Stats&amp;diff=44120"/>
		<updated>2017-10-28T18:05:22Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: update link to gumi&amp;#039;s stats calculator&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Meta}}{{I18n}}&lt;br /&gt;
{{Category_playerinfo}}&lt;br /&gt;
{{Status_green}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stats are values used in-game that determine how your character performs both in general and in specific situations. The majority of these values can be viewed with the Status window and are able to be increased with time and effort. However, there are also other figures that are visible elsewhere and are important to be aware of.&lt;br /&gt;
&lt;br /&gt;
==Player Information==&lt;br /&gt;
&lt;br /&gt;
===Health===&lt;br /&gt;
Health or &#039;&#039;HP&#039;&#039; is an value that determines how much damage you can take without dying. Damage in battle as well as damage over time from poison. Both reduce your current health while potions and magic are able to restore your health. Once your character&#039;s health reaches 0, your character will die. Your current health is also naturally restored over time, although this may be influenced by your current weight (see below). It is important to note that your maximum health is connected to your Vitality level.&lt;br /&gt;
&lt;br /&gt;
===Weight===&lt;br /&gt;
Both items and players have &amp;quot;weight&amp;quot; statistics represented in grams and kilograms. In the case of Items, this is a static weight for each item type. For players, the weight is determined by the total weight of items in his or her inventory. Your current weight is 21kg plus 300g (0.3kg) per point of Strength. Your weight is important because as it reaches halfway, it can encumber you to the effect of keeping you from naturally restoring your health and mana.&lt;br /&gt;
&lt;br /&gt;
===Experience===&lt;br /&gt;
Experience is a value that you accumulate both by killing monsters and completing certain actions or dialogues (usually quests). When you reach your displayed maximum experience, your Level will increase by one and your displayed experience will be reset. The maximum amount of experience required for you to reach the next level is progressively increased per your player level. The values for this increase are not calculated by a formula.&lt;br /&gt;
&lt;br /&gt;
===Level===&lt;br /&gt;
Your player&#039;s level, as determined by your experience, is a mark of how much you have advanced. In particular, this is useful because each level increase grants you Character points. You are free to spend to increase your leveled stats. Some figures, such as maximum health, are automatically increased as your level is increased.&lt;br /&gt;
&lt;br /&gt;
===Mana Points===&lt;br /&gt;
Mana points, or &#039;&#039;MP&#039;&#039;, represent the amount of magical energy you have. Using magic spells drains your mana points. Your maximum Mana points are increased by your Intelligence level. If you do not have more than half of your weight capacity in your inventory, your Mana Points will come back naturally, just like Health Points.&lt;br /&gt;
&lt;br /&gt;
==Leveled Stats==&lt;br /&gt;
&lt;br /&gt;
These stats can be raised with character points gathered from each player level increase. They are essential to advancing and surviving in the game world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;About Status Points:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
All divisions ( / ) in TMW are integer divisions (quotient).&lt;br /&gt;
&lt;br /&gt;
* At each Base Level you gain a number of Status Points. These points can be used to improve your 6 main Stats. The number of points gained at each Base Level can be calculated as [(BaseLevel+14)/4]=[(BaseLevel+2)/4] + 3.&lt;br /&gt;
* The cost of improving a Stat increases as the Stat rises (the base amount only). The cost to increase a Stat by one can be calculated as [(BaseOfStat - 1)/ 10] + 2. For instance, if you have 29+3 Dex, then it will cost [(29-1)/10]+2 = 2+2 = 4 Status Points to improve it to 30+3. &lt;br /&gt;
&lt;br /&gt;
===Agility===&lt;br /&gt;
Raises your attack speed and your dodge.&lt;br /&gt;
* +1 to Flee/Evade per point.&lt;br /&gt;
* Increased attack speed per point (This is also based on the attack speed of the weapon you are using).&lt;br /&gt;
&lt;br /&gt;
===Dexterity===&lt;br /&gt;
Raises your bow damage and your accuracy (minimum damage on hit). &lt;br /&gt;
* +1 to Hit per point.  Note that the chance to hit a target is then reduced by (distance * (distance + 1)).&lt;br /&gt;
* Increased attack speed per point (This is also based on the attack speed of the weapon).&lt;br /&gt;
* +1 base damage per point for missile weapons.&lt;br /&gt;
* A bonus of (Dexterity/10)^2 for missile weapons (such as bows). Note that (Dexterity/10) is truncated so that this bonus only changes every 10 points of Dexterity. &lt;br /&gt;
* +1 base damage per 5 points for melee weapons.&lt;br /&gt;
* +1 minimum damage per point for melee weapons. If dexterity exceeds the attack value of the melee weapon, use the attack of the melee weapon for the min. value (ie. The max. and min. values become the same).&lt;br /&gt;
* +0.15% critical chance for melee weapons per point of dexterity&lt;br /&gt;
&lt;br /&gt;
===Vitality=== &lt;br /&gt;
Raises max health points and Defense. &lt;br /&gt;
* +1% to max health points per point.&lt;br /&gt;
* +0.8 weapon Damage reduction (defensive) per point.&lt;br /&gt;
* Healing items effect increased by +2% per point.&lt;br /&gt;
* Every 5 full points of Vitality increases health points recovery power by 1.  This affects both healing by resting and healing by heal-over-time items.&lt;br /&gt;
* For monsters, there is a bonus to damage reduction.&lt;br /&gt;
* There is a hidden bonus of +1 Intelligence style Magic Defense per 2 points (currently not used in TMW).&lt;br /&gt;
* If (vitality + (luck / 3)) is greater than or equal to 97, then you are immune to poison.&lt;br /&gt;
&lt;br /&gt;
===Luck=== &lt;br /&gt;
Raises max lucky dodge. &lt;br /&gt;
* +1 base damage per 5 points of luck for missile and melee weapons.&lt;br /&gt;
* +0.2% critical chance per point of luck.&lt;br /&gt;
* -0.3% enemy critical chance per point.&lt;br /&gt;
* +0.1% &amp;quot;lucky&amp;quot; dodge chance (the right hand part of your evade value) per point of luck (starting at 1% with 0 luck).&lt;br /&gt;
* 3 + (Vitality + (Luck / 3)) % chance of resisting poison.&lt;br /&gt;
&lt;br /&gt;
===Intelligence===&lt;br /&gt;
Raises your MP (Mana Points) and mind abilities. &lt;br /&gt;
* +1 Base Magic Attack per point.&lt;br /&gt;
* +1 Base Magic Defense per point.&lt;br /&gt;
* +1% to Max MP per point.&lt;br /&gt;
* MP Recovery items effect increased by +2% per point.&lt;br /&gt;
* Every 6 full points of Intelligence increases MP recovery power by 1 and past 120 Intelligence, every 2 Intelligence points gives a bonus to MP recovery power of 1.&lt;br /&gt;
* A bonus to min. magic attack.&lt;br /&gt;
* A bonus to max. magic attack.&lt;br /&gt;
* +1 spell damage reduction (defensive) per point.&lt;br /&gt;
&lt;br /&gt;
===Strength=== &lt;br /&gt;
Raises your attack and damage of your hits.&lt;br /&gt;
* +1 base damage per point for melee weapons.&lt;br /&gt;
* A bonus of (Strength/10)^2 for melee weapons. Note that (Strength/10) is truncated so that this bonus only changes every 10 points of Strength. &lt;br /&gt;
* +1 base damage per 5 points for missile weapons.&lt;br /&gt;
* +30 carrying capacity per point of base Strength.&lt;br /&gt;
&lt;br /&gt;
===See Also===&lt;br /&gt;
* [[Walkthrough#Raising your Stats|Raising your Stats]] on the [[Walkthrough]] page.&lt;br /&gt;
&lt;br /&gt;
===References and Links===&lt;br /&gt;
* Gumi stats calculator online: https://stats.gumi.ca&lt;br /&gt;
* Travolta&#039;s stat calculator: https://bitbucket.org/rumly111/tktmwstats&lt;br /&gt;
* &#039;&#039;&#039;Garett-the-Great&#039;&#039;&#039;&#039;s Warrior&#039;s stat optimizer: http://tmw.gjr.gr/warrior.php&lt;br /&gt;
* [http://ro.doddlercon.com/calc/calcx.html RO Stats Calculator] (do only change the Lvl, STR, AGI, VIT, INT, DEX, LUK values!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #EEEEFF; text-align: center; border: 1px solid #5555BB; margin-bottom: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039; &#039;This article is under construction&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The concept of the features described here are still under construction. The information for this wiki will be for the server.themanaworld.org server in the very near future, so expect changes.  The link to the legacy server (above) has the older wiki on it. Therefore, this wiki may seem incomplete or confusing for a little while. Please be patient, and look forward to the great changes!&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{{message|}}}&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Love_Triangle_Quest&amp;diff=40657</id>
		<title>Love Triangle Quest</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Love_Triangle_Quest&amp;diff=40657"/>
		<updated>2016-08-21T16:22:02Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: add pollett as source for ice cubes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Meta}}{{I18n}}&lt;br /&gt;
{{Category playerinfo}}&lt;br /&gt;
{{Status green}}&lt;br /&gt;
&lt;br /&gt;
{{Quest&lt;br /&gt;
| Image         = [[File:Love Triangle.png|thumbnail]]&lt;br /&gt;
| Start         = 026-2, Asphodel Moor&lt;br /&gt;
| Level         = 85 (required)&lt;br /&gt;
| Reward        = Various Items&lt;br /&gt;
| Cost          = Various Items&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; These quests give some different items. If you get a reward, this doesn&#039;t mean the quest is finished.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only once&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Level Needed:&#039;&#039;&#039; 85&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Starting Location:&#039;&#039;&#039; 026-2, Asphodel Moor, Hamond&lt;br /&gt;
&lt;br /&gt;
==Hamond==&lt;br /&gt;
&lt;br /&gt;
[[File:Hamond2.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Items Needed:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 100 Ice Cubes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ice Cubes are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Pollett]] (10%)&lt;br /&gt;
* Ice Element (9%)&lt;br /&gt;
* Ice Goblin (5%)&lt;br /&gt;
* [[White Slime]] (2%)&lt;br /&gt;
* [[Blue Slime]] (2%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What To Do:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Go to the swamp and enter Asphodel Moor. Near the town centre, you&#039;ll see the lightman, Hamond, standing besides a small lake.&lt;br /&gt;
# He needs 100 Ice Cubes for his &amp;quot;drink&amp;quot;. You get 75,000 EXP as a reward.&lt;br /&gt;
# Hamond then talks about his beloved Reid. She is really sad, you might want to go and see her.&lt;br /&gt;
# He also tells you that you will need a huge amount of Bones and Skulls.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The Ice Cubes are easy to get but it takes time to get some because the monsters don&#039;t drop them very frequent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 75,000 EXP&lt;br /&gt;
&lt;br /&gt;
==Hamond==&lt;br /&gt;
&lt;br /&gt;
[[File:Hamond2.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Items Needed:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 100 Bones&lt;br /&gt;
* 75 Skulls&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bones are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reaper (5%)&lt;br /&gt;
* [[Lady Skeleton]] (2.8% + 2%)&lt;br /&gt;
* Skeleton (2.8% + 2%)&lt;br /&gt;
* Fallen (2.1% + 2.1%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skulls are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Lady Skeleton]] (3%)&lt;br /&gt;
* Skeleton (3%)&lt;br /&gt;
* Fallen (3%)&lt;br /&gt;
* Reaper (1%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What To Do:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Come back and see Hamond, he needs 100 Bones and 75 Skulls at the same time. You&#039;ll get 100,000 EXP as a reward.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 100,000 EXP&lt;br /&gt;
&lt;br /&gt;
==Aldred==&lt;br /&gt;
&lt;br /&gt;
[[File:Aldred2.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What To Do:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Aldred, the crying child, can be found in the first floor of Reid&#039;s house. He has lost his Ring and wants you to find it for him.&lt;br /&gt;
# Head out to the crypt and kill 10 Zombies/Fallens. After that, you&#039;ll have 1 chance out of 8 to find the ring on a Zombie/Fallen. Killing a fallen/zombie counts if you deal the final blow, doesn&#039;t matter how much damage you deal. The ring won&#039;t show up as a drop, nor it will suddenly show up in your inventory, you just see a message when you get the ring. the message will be saved in debug tab so in case you missed it you can check there. Remember to &#039;&#039;&#039;not&#039;&#039;&#039; disconnect while you do that, or else you will need to restart all over again killing these nasty monsters.&lt;br /&gt;
# Come back into the Inn and show the ring to Aldred.&lt;br /&gt;
# You now need to talk to Hamond and show him the ring. He will say it is a cheap fashionable ring that kids wear. Now go and see Reid, show her the ring, she&#039;ll say it brings back bad memories.&lt;br /&gt;
# Come back to Aldred and tell him everything, he&#039;ll then give you the ring, a Simple Ring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 1 Simple Ring&lt;br /&gt;
&lt;br /&gt;
==Reid&#039;s Ghost==&lt;br /&gt;
&lt;br /&gt;
[[File:Reids Ghost2.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Items Needed:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 15 Yeti Tears&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yeti Tears are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Yeti (3%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What To Do:&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Reids Diary.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
# Go to Reid&#039;s house in the northwestern corner of Asphodel Moor. Talk to Reid&#039;s Ghost there.&lt;br /&gt;
# Hand her the 15 Yeti Tears that represents her sadness according to her.&lt;br /&gt;
# Tell her you want to know more about her life. She explains a lot of things about her life and then hands you a key.&lt;br /&gt;
# this key is meant for the top floor, the big room with the bookshelves. Enter this room and click on the right side of the upper shelf. You&#039;ll be able to read Reid&#039;s Diary.&lt;br /&gt;
# Go back and see Reid, however you&#039;ll still need to get more informations.&lt;br /&gt;
# Go and see Savaric and talk to him about his relations with Reid. He only tells you that she is the Innkeeper and him the Patron.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 100,000 EXP&lt;br /&gt;
&lt;br /&gt;
==Savaric==&lt;br /&gt;
&lt;br /&gt;
[[File:Savaric2.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Items Needed:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 500 Dark Crystals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dark Crystals are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Skeleton (10%)&lt;br /&gt;
* [[Lady Skeleton]] (10%)&lt;br /&gt;
* Fire Skull (10%)&lt;br /&gt;
* Poison Skull (10%)&lt;br /&gt;
* Fallen (10%)&lt;br /&gt;
* Zombie (10%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What To Do:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Enter the Inn in Asphodel Moor. You find it on the south-east corner. Go to the first floor. In a small room in the south-east, you see Savaric hangin&#039; around.&lt;br /&gt;
# He needs 500 Dark Crystals to free himself. By doing that, you&#039;ll get injured by the power of the Dark Crystals. You normally shouldn&#039;t die.&lt;br /&gt;
# You get 200,000 EXP + 100 EXP per spare Dark Crystals you gave to Savaric.&lt;br /&gt;
# He now wants to know where the power of the Dark Crystals come from.&lt;br /&gt;
# You now need to talk to Hamond, you of course needed to do the previous steps to be able to do that. Ask him about Savaric.&lt;br /&gt;
# Now go back to Savaric and tell him you know where the power of the Dark Crystals come from. You now need to talk to Golbenez.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If you have more than 500 Dark Crystals in your inventory, Savaric will give you 100 EXP for each of the spare ones he takes after 500.&lt;br /&gt;
* You can buy some dark crystals to Leofwin for 1,000 GP each. He is located on the top floor of the Graveyard Inn. But you&#039;ll lose too much money doing that.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 200,000 EXP (+100 EXP per spare Dark Crystal)&lt;br /&gt;
&lt;br /&gt;
==Golbenez==&lt;br /&gt;
&lt;br /&gt;
[[File:Golbenez2.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Items Needed:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 50 Rotten Rags&lt;br /&gt;
* 15 Undead Ears&lt;br /&gt;
* 10 Undead Eyes&lt;br /&gt;
* 1 Chocolate Cake&lt;br /&gt;
* 1 Orange Cake&lt;br /&gt;
* 1 Apple Cake&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rotten Rags are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Zombie (7%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Undead Ears are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Zombie (2%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Undead Eyes are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Zombie (1.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What To Do:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# After talking to Savaric, you need to find out from where the power of the Dark Crystals come from. This is why you come and see your lovely  friend Golbenez.&lt;br /&gt;
# So go to the basement of the Inn and head west until you see the creature. The problem, when you ask him, is that he wants your soul. He also asks for 50 Rotten Rags.&lt;br /&gt;
# After giving him the rags, you hesitate while walking in front of him. He grabs you with his claw-like fingers and everything turns black. You now see Reid&#039;s memories.&lt;br /&gt;
# After that long dream, he asks you for 15 Undead Ears. He also takes an Orange Cake from you.&lt;br /&gt;
# You feel nervous as he takes your head once again after giving him the Undead Ears. You are once more transported into Hamond&#039;s memories.&lt;br /&gt;
# Once again, he needs some items. He needs 10 Undead Eyes and 1 Apple Cake. After giving these to him, you see Savaric, the mage&#039;s memories.&lt;br /&gt;
&lt;br /&gt;
==Savaric==&lt;br /&gt;
&lt;br /&gt;
[[File:Savaric2.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Items Needed:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20 Diamonds&lt;br /&gt;
* Jack O Soul (2% for it to work)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diamonds are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Moggun]] (0.2%)&lt;br /&gt;
* [[White Slime]] (0.2%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Jack O Souls are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Jack O (100%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What To Do:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Talk to Savaric and tell him what you just saw with Golbenez.&lt;br /&gt;
# He feels guilty and wants to be forgiven. He wants you to bring 20 Diamonds to Reid.&lt;br /&gt;
# Tell Reid that you find out about her and this place. Talk to her once more and give her the 20 Diamonds.&lt;br /&gt;
# Come back and see Savaric. He wants his soul back from Golbenez, now talk to Golbenez.&lt;br /&gt;
# He wants a good soul against Savaric&#039;s, bring Jack O souls. You have 1 chance out of 50 that it works.&lt;br /&gt;
# When you got one as equal as Savaric&#039;s, go and talk to him to give his soul back. You receive a Sorcerer Robe (Red).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Each time Golbenez rejects a Jack O soul you give him, you receive 2,000 EXP as compensation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 1 Sorcerer Robe (Red)&lt;br /&gt;
&lt;br /&gt;
==Hamond==&lt;br /&gt;
&lt;br /&gt;
[[File:Hamond2.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Items Needed:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 25 Rubies&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rubies are dropped by:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Red Slime]] (0.2%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What To Do:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Repeat the previous steps but now with Hamond. Tell him you find out what happened to this place, etc...&lt;br /&gt;
# He asks you to give 25 Rubies to Reid as forgiveness, which you do. Come back and see him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 1 Bowler Hat (Brown)&lt;br /&gt;
&lt;br /&gt;
==Reid&#039;s Ghost==&lt;br /&gt;
&lt;br /&gt;
[[File:Reids Ghost2.png|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What To Do:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Now come back to talk to Reid, she&#039;ll have the last present of the quest, a bottle of Mylarin Dust that will be used later.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 1 Mylarin Dust&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 100,000 EXP&lt;br /&gt;
* 150,000 EXP&lt;br /&gt;
* 150,000 EXP&lt;br /&gt;
&lt;br /&gt;
==Total Quest Cost==&lt;br /&gt;
&lt;br /&gt;
* 500 Dark Crystals&lt;br /&gt;
* 100 Ice Cubes&lt;br /&gt;
* 100 Bones&lt;br /&gt;
* 75 Skulls&lt;br /&gt;
* 50 Rotten Rags&lt;br /&gt;
* 25 Rubies&lt;br /&gt;
* 15 Frozen Yeti Tears&lt;br /&gt;
* 15 Undead Ears&lt;br /&gt;
* 20 Diamonds&lt;br /&gt;
* 10 Undead Eyes&lt;br /&gt;
* random number of Jack O Souls (2% for it to work)&lt;br /&gt;
* 1 Apple Cake&lt;br /&gt;
* 1 Orange Cake&lt;br /&gt;
* 1 Chocolate Cake&lt;br /&gt;
&lt;br /&gt;
==Total Quest Rewards==&lt;br /&gt;
&lt;br /&gt;
* 975,000 EXP (+100 EXP per spare Dark Crystal + 2000 EXP per Jack&#039;O soul)&lt;br /&gt;
* 1 Simple Ring&lt;br /&gt;
* 1 Sorcerer Robe (Red)&lt;br /&gt;
* 1 Bowler Hat (Brown)&lt;br /&gt;
* 1 Mylarin Dust&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quest]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Git_repository&amp;diff=40601</id>
		<title>Development:Git repository</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Git_repository&amp;diff=40601"/>
		<updated>2016-08-05T18:13:28Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;git&#039;&#039;&#039; 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.&lt;br /&gt;
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. &lt;br /&gt;
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)&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* &#039;&#039;&#039;This page&#039;&#039;&#039;: 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&#039;s information should be correct. &lt;br /&gt;
* &#039;&#039;&#039;[[How to Develop]]&#039;&#039;&#039; 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.&lt;br /&gt;
* &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; contains the most up to date information to use Git with the command line. &#039;&#039;It is the actual reference that you should follow&#039;&#039;. It is important to read it even if you plan to use a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
== The primary repository ==&lt;br /&gt;
&lt;br /&gt;
=== Initial setup ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With Git, we&#039;ll have one repository for each project. The central repositories through which we cooperate are hosted on &#039;&#039;&#039;[https://github.com/ github.com]&#039;&#039;&#039;. &#039;&#039;&#039;github&#039;&#039;&#039; is a friendly website. On &#039;&#039;&#039;github&#039;&#039;&#039; the main repository for each project is called &#039;&#039;master&#039;&#039;. Once you click to the master repository, you can see several ways to clone it (the new &amp;lt;code&amp;gt;svn checkout&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
We&#039;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 &#039;&#039;&#039;github&#039;&#039;&#039;. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the &amp;quot;push URL&amp;quot;, since it allows you to push commits into the repository via ssh. The list below is for your convenience.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Project&lt;br /&gt;
! Read-only URL&lt;br /&gt;
! Atom feed&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4| &amp;lt;span style=&amp;quot;color:White; background:Sienna&amp;quot;&amp;gt;TMW, TMW eAthena&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[https://github.com/themanaworld/tmw-branding TMW branding]&#039;&#039;&#039;&lt;br /&gt;
| git://github.com/themanaworld/tmw-branding.git&lt;br /&gt;
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|This repository contains the branding files to turn Mana into TMW.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[https://github.com/themanaworld/tmwa.git eAthena server]&#039;&#039;&#039;&lt;br /&gt;
| git://github.com/themanaworld/tmwa.git&lt;br /&gt;
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|This repository contains our hacked up eAthena.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]&#039;&#039;&#039;&lt;br /&gt;
| git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]&#039;&#039;&#039;&lt;br /&gt;
| git://github.com/themanaworld/tmwa-client-data.git&lt;br /&gt;
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[https://github.com/themanaworld/tmw-art TMW Art]&#039;&#039;&#039;&lt;br /&gt;
| git://github.com/themanaworld/tmw-art.git&lt;br /&gt;
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|This repository contains some sources for our artwork.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[https://github.com/themanaworld/tmw-music TMW music]&#039;&#039;&#039;&lt;br /&gt;
| git://github.com/themanaworld/tmw-music.git&lt;br /&gt;
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[https://github.com/themanaworld/themanaworld-website TMW website]&#039;&#039;&#039;&lt;br /&gt;
| git://github.com/themanaworld/themanaworld-website.git&lt;br /&gt;
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|This repository contains the website of The Mana World. &lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|&amp;lt;span style=&amp;quot;color:White; background:Sienna&amp;quot;&amp;gt;Official client: ManaPlus.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[https://gitorious.org/manaplus/manaplus/ ManaPlus client]&#039;&#039;&#039;&lt;br /&gt;
| https://gitlab.com/manaplus/manaplus.git &lt;br /&gt;
| [https://gitlab.com/manaplus/manaplus.atom Atom]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|This repository contains the ManaPlus client sources.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.&lt;br /&gt;
&lt;br /&gt;
Git uses ssh&#039;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:&lt;br /&gt;
&lt;br /&gt;
# Signed up to github.com&lt;br /&gt;
# Generated a private/public ssh keypair (if you haven&#039;t got this already)&lt;br /&gt;
# Filled in your public key in your account details on GitHub&lt;br /&gt;
# Been added with commit rights to the repository&lt;br /&gt;
# Followed the directions in the [How to Develop] page&lt;br /&gt;
&lt;br /&gt;
== Working with git ==&lt;br /&gt;
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] &lt;br /&gt;
&lt;br /&gt;
:::&#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;gitk&#039;&#039;&#039;: A simple but effective tool that visualizes the history and some of your current state. Run with &amp;lt;code&amp;gt;--all&amp;lt;/code&amp;gt; to have it show all branches, otherwise it will just show stuff relevant to your current branch.&lt;br /&gt;
* &#039;&#039;&#039;tig&#039;&#039;&#039;: A textual interface, rather similar to an email reader.&lt;br /&gt;
* &#039;&#039;&#039;git gui&#039;&#039;&#039;: A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.&lt;br /&gt;
* &#039;&#039;&#039;Giggle&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;qgit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;git-cola&#039;&#039;&#039; : [http://git-cola.github.com/ http://git-cola.github.com/]&lt;br /&gt;
* &#039;&#039;&#039;SmartGit&#039;&#039;&#039; : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]&#039;&lt;br /&gt;
&lt;br /&gt;
=== git on Windows ===&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;code&amp;gt;core.autocrlf&amp;lt;/code&amp;gt; using &amp;lt;code&amp;gt;git config core.autocrlf false&amp;lt;/code&amp;gt;. However, this is not recommended for contributors since the setting makes sure you don&#039;t commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.&lt;br /&gt;
GitHub works uses the same tools as Git.&lt;br /&gt;
:&#039;&#039;&#039;GUIs&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;GitHub for Windows&#039;&#039;&#039; : [http://windows.github.com/ http://windows.github.com/]&lt;br /&gt;
* &#039;&#039;&#039;Git Extensions&#039;&#039;&#039; : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]&lt;br /&gt;
* &#039;&#039;&#039;git-cola&#039;&#039;&#039; : [http://git-cola.github.com/ http://git-cola.github.com/]&lt;br /&gt;
* &#039;&#039;&#039;SmartGit&#039;&#039;&#039; : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]&lt;br /&gt;
=== git on MacOS X ===&lt;br /&gt;
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]&lt;br /&gt;
:&#039;&#039;&#039;GUIs&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;GitHub for Mac&#039;&#039;&#039; github &lt;br /&gt;
has it&#039;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.&lt;br /&gt;
* &#039;&#039;&#039;GitX&#039;&#039;&#039; : [http://gitx.laullon.com/ http://gitx.laullon.com/]&lt;br /&gt;
* &#039;&#039;&#039;SourceTree&#039;&#039;&#039; : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]&lt;br /&gt;
* &#039;&#039;&#039;git-cola&#039;&#039;&#039; : [http://git-cola.github.com/ http://git-cola.github.com/]&lt;br /&gt;
* &#039;&#039;&#039;SmartGit&#039;&#039;&#039; : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]&lt;br /&gt;
&lt;br /&gt;
===Glossary===&lt;br /&gt;
You may like this very nice interactive memo: &#039;&#039;&#039;[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]&#039;&#039;&#039; by [https://github.com/ndp Andrew Patterson] from NDP software.&lt;br /&gt;
&lt;br /&gt;
* Branch&lt;br /&gt;
* Clone&lt;br /&gt;
* Commit&lt;br /&gt;
* Fork&lt;br /&gt;
* Mainline &lt;br /&gt;
* Master&lt;br /&gt;
* Merge&lt;br /&gt;
* Origin&lt;br /&gt;
* Patch&lt;br /&gt;
* Pull&lt;br /&gt;
* Push&lt;br /&gt;
* Stash&lt;br /&gt;
* Tree&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Joining_the_project&amp;diff=40600</id>
		<title>Development:Joining the project</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Joining_the_project&amp;diff=40600"/>
		<updated>2016-08-05T18:10:46Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: TMWA &amp;gt; Hercules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Meta}}&lt;br /&gt;
{{I18n}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So you want to help this project, but you have little or no idea how to get into it? &#039;&#039;&#039;The Mana World development team is &#039;&#039;not&#039;&#039; a closed circle&#039;&#039;&#039; like many other projects. You don&#039;t need to apply to anyone or ask for &amp;quot;being taken into the team&amp;quot;. You don&#039;t have to ask for permission to work on something or wait for someone to assign a task to you. A team member is basically anyone who volunteers to do something for the game.&lt;br /&gt;
&lt;br /&gt;
==How-to Develop==&lt;br /&gt;
* Instructions to set-up a TMW server are at [[How to Develop]].&lt;br /&gt;
* [[Dev:Main| Development Documentation]] contains more detailed information than the short summaries below.&lt;br /&gt;
* TMW uses git. [[Dev:Working With Git|how to use Git]]&lt;br /&gt;
* TMW staff is available for further information, assistance or help in our [https://webchat.freenode.net/?channels=#themanaworld-dev IRC development channel] or on the [https://forums.themanaworld.org/ forums].&lt;br /&gt;
&lt;br /&gt;
==How-to Help==&lt;br /&gt;
Any player can at any time help us in various ways other then development&lt;br /&gt;
* [[Things to do|Help edit wiki]]&lt;br /&gt;
* [[Translators]]&lt;br /&gt;
* [[Reporting Bugs]]&lt;br /&gt;
* [[Testing Server|Testing]]&lt;br /&gt;
&lt;br /&gt;
==Technical aspects==&lt;br /&gt;
The technical aspects of development of TMW include tweaking our custom server (tmwAthena). The server is done in C++ and scripts are done in the tmwAthena scripting language. Notably tmwAthena is an SVN snapshot from [http://eathena.ws/ eAthena] (a [http://en.wikipedia.org/wiki/Ragnarok_Online Ragnarok Online] game server emulator software) in early 2004. We&#039;ve extensively hacked it and cleaned it over the years (it was at the moment of taking the snapshot in transition from the basis of an old hacky [http://en.wikipedia.org/wiki/MUD MUD] server to the current eAthena codebase). The technical aspects of the TMW project also include packaging data updates for the client.&lt;br /&gt;
&lt;br /&gt;
===ManaPlus Client===&lt;br /&gt;
Originally just a fork of the official Mana client, ManaPlus got blessed when Mana stopped being updated and ran behind on features.&lt;br /&gt;
&lt;br /&gt;
[http://manaplus.evolonline.org/ Site and downloads], [http://bugs.evolonline.org bug tracker].&lt;br /&gt;
&lt;br /&gt;
==Parts of TMW==&lt;br /&gt;
&lt;br /&gt;
===evol-hercules Server===&lt;br /&gt;
Until recently TMW used TMWA an MMORPG server that forked from eAthena, a Ragnarok Online clone, in early 2004. &lt;br /&gt;
The Mana World (Athena) server originated as a snapshot of [http://eathena.ws eAthena]. It has since been extensively kludged, purged, optimized, and strictened, to the point that it will usually bitch at you if your scripts or config are wrong instead of silently doing the wrong thing.&lt;br /&gt;
 &lt;br /&gt;
During the summer of 2016 the devs decided to move on to the  [http://herc.ws/board/ hercules] server, an active developed fork of the original eathena. They wrote plugins to support the TMW specific bits.&lt;br /&gt;
&lt;br /&gt;
===Content===&lt;br /&gt;
Content means: new monsters, new equipment, new maps, new NPCs, new quests, new anything into the game.&lt;br /&gt;
Content does not mean: GFX, SFX.&lt;br /&gt;
&lt;br /&gt;
Before anything can get into the game, it should be designed. After that it should be implemented server-sided. Then GFX and potentially also SFX can be requested for it and it can go into the game once they&#039;re done. Currently visioning ideas is a collective process anyone can take part in and the people doing scripting are cherry-picking whatever ideas they want to get into the game. Scripting stuff is also a free for all process. Once there is a good idea to expand the world, in general new maps can be requested. Reading the forums thoroughly and asking publicly usually gets you answers rather well.&lt;br /&gt;
&lt;br /&gt;
===Graphics===&lt;br /&gt;
Graphics development could currently use a few pixel artists going about and retouching old mistakes in tilesets and sprite sets. Also if the content development crowd picks up and starts to provide concepts which would require new GFX work to be done, then there is going to be a demand for new equipment work, tilesets and sprite sets. Please remember to pay attention to our [[guidelines]].&lt;br /&gt;
&lt;br /&gt;
Also do hunt for unfulfilled REQ topics on the forums if you&#039;re looking for something to do. Newbie pixel artists or people doing their first pixel art piece ever are also very welcome. The community can be pretty harsh at times, but there are also people around who actually do know what they&#039;re talking about. It is up to you to distinguish between these two.&lt;br /&gt;
&lt;br /&gt;
===SFX / Music===&lt;br /&gt;
The SFX and music development scheme for TMW is currently not really all that active. New sounds and music are always appreciated.&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
* [[Dev:Main| Development Documentation]]&lt;br /&gt;
* [[Testing Server]]&lt;br /&gt;
* [[Reporting Bugs]]&lt;br /&gt;
* [[How to Develop]]&lt;br /&gt;
* [[Projects and Teams]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Localserver&amp;diff=40599</id>
		<title>Development:Localserver</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Localserver&amp;diff=40599"/>
		<updated>2016-08-05T17:56:19Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: make link work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== Local server install and configure ======&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before look [[Dev:How_to_Develop|first steps and local server]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before this step [[Guidelines/installmariadb|install and configure mariadb server]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====== Add local server repository ======&lt;br /&gt;
&lt;br /&gt;
1. Open command line in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
2. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If was no server-local repository, it will start cloning it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Now you can build server from sources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====== Build and install local server from sources ======&lt;br /&gt;
&lt;br /&gt;
For build server you must install different deps.&lt;br /&gt;
&lt;br /&gt;
  * mysqlclient-dev, mariadbclient-dev, libmysqlclient-dev, libmariadbclient-dev depend what sql and os you using.&lt;br /&gt;
  * libtool&lt;br /&gt;
  * zlib-dev or zlib1g-dev package&lt;br /&gt;
  * libpcre-dev package&lt;br /&gt;
  * gcc, make, automake, autoconf and may be some other common build tools.&lt;br /&gt;
&lt;br /&gt;
For build do this steps:&lt;br /&gt;
&lt;br /&gt;
1. Open command line in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
2. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/localserver&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you will see&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;~/evol-all/tools/localserver$ &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./installconfigs.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./build.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or if you have gcc &amp;lt; 4.8&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./build.sh old&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. If all went without errors now you can try to [[guidelines/runserver|run server]]&lt;br /&gt;
&lt;br /&gt;
====== Run local server ======&lt;br /&gt;
&lt;br /&gt;
Open three terminals in /evol-all/server-data/&lt;br /&gt;
&lt;br /&gt;
In first terminal run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./login-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In second terminal run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./char-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In last terminal run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./map-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All servers should not show errors.&lt;br /&gt;
&lt;br /&gt;
If you see error like &amp;quot;plugin not found&amp;quot; you should build server, something wrong happend and plugins not working.&lt;br /&gt;
&lt;br /&gt;
If you see &amp;quot;config not found&amp;quot; you probably running server not from server-data directory.&lt;br /&gt;
&lt;br /&gt;
====== Upgrade local server ======&lt;br /&gt;
&lt;br /&gt;
At first run ./pull.sh in evol-all directory for update all repositories.&lt;br /&gt;
&lt;br /&gt;
Then follow steps from &amp;quot;Build and install local server from sources&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also follow [[guidelines/updating#update_database|update database]] step&lt;br /&gt;
&lt;br /&gt;
And follow [[guidelines/updating#update_configuration|update configs]] step&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Guidelines/installmariadb&amp;diff=40598</id>
		<title>Guidelines/installmariadb</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Guidelines/installmariadb&amp;diff=40598"/>
		<updated>2016-08-05T17:53:56Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: import more pages from evol wiki: installmariadb&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to install and configure mariadb/mysql server&lt;br /&gt;
&lt;br /&gt;
====== 1. Install maria db ======&lt;br /&gt;
&lt;br /&gt;
===== 1.1. Ububtu and debian =====&lt;br /&gt;
&lt;br /&gt;
Run this command:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install mariadb-server mariadb-client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 1.2. Other operating systems =====&lt;br /&gt;
on other os possible install mariadb or mysql.&lt;br /&gt;
&lt;br /&gt;
//While install package manager will ask db root password. Remember it, because it will be used on other steps.//&lt;br /&gt;
&lt;br /&gt;
====== 2. Configuring mariadb server ======&lt;br /&gt;
&lt;br /&gt;
1. Open command line in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
2. run&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/localserver&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all$ cd tools/localserver&lt;br /&gt;
evol-all/tools/localserver$ &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. run&lt;br /&gt;
&amp;lt;code&amp;gt;./initdb.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all/tools/localserver$ ./initdb.sh &lt;br /&gt;
Creating db and user...&lt;br /&gt;
Enter mysql root password:&lt;br /&gt;
Enter password:&lt;br /&gt;
Creating tables...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. enter your mariadb/mysql **root** password and press enter&lt;br /&gt;
&lt;br /&gt;
and you will see&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all/tools/localserver$ ./initdb.sh &lt;br /&gt;
Creating db and user...&lt;br /&gt;
Enter mysql root password:&lt;br /&gt;
Enter password:&lt;br /&gt;
Creating tables...&lt;br /&gt;
evol-all/tools/localserver$ &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now mysql ready for usage&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Localserver&amp;diff=40597</id>
		<title>Development:Localserver</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Localserver&amp;diff=40597"/>
		<updated>2016-08-05T17:52:21Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: make links work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== Local server install and configure ======&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before look [[Dev:How_to_Develop|first steps and local server]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before this step [[guidelines/installmariadb|install and configure mariadb server]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====== Add local server repository ======&lt;br /&gt;
&lt;br /&gt;
1. Open command line in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
2. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If was no server-local repository, it will start cloning it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Now you can build server from sources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====== Build and install local server from sources ======&lt;br /&gt;
&lt;br /&gt;
For build server you must install different deps.&lt;br /&gt;
&lt;br /&gt;
  * mysqlclient-dev, mariadbclient-dev, libmysqlclient-dev, libmariadbclient-dev depend what sql and os you using.&lt;br /&gt;
  * libtool&lt;br /&gt;
  * zlib-dev or zlib1g-dev package&lt;br /&gt;
  * libpcre-dev package&lt;br /&gt;
  * gcc, make, automake, autoconf and may be some other common build tools.&lt;br /&gt;
&lt;br /&gt;
For build do this steps:&lt;br /&gt;
&lt;br /&gt;
1. Open command line in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
2. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/localserver&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you will see&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;~/evol-all/tools/localserver$ &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./installconfigs.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./build.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or if you have gcc &amp;lt; 4.8&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./build.sh old&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. If all went without errors now you can try to [[guidelines/runserver|run server]]&lt;br /&gt;
&lt;br /&gt;
====== Run local server ======&lt;br /&gt;
&lt;br /&gt;
Open three terminals in /evol-all/server-data/&lt;br /&gt;
&lt;br /&gt;
In first terminal run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./login-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In second terminal run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./char-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In last terminal run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./map-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All servers should not show errors.&lt;br /&gt;
&lt;br /&gt;
If you see error like &amp;quot;plugin not found&amp;quot; you should build server, something wrong happend and plugins not working.&lt;br /&gt;
&lt;br /&gt;
If you see &amp;quot;config not found&amp;quot; you probably running server not from server-data directory.&lt;br /&gt;
&lt;br /&gt;
====== Upgrade local server ======&lt;br /&gt;
&lt;br /&gt;
At first run ./pull.sh in evol-all directory for update all repositories.&lt;br /&gt;
&lt;br /&gt;
Then follow steps from &amp;quot;Build and install local server from sources&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also follow [[guidelines/updating#update_database|update database]] step&lt;br /&gt;
&lt;br /&gt;
And follow [[guidelines/updating#update_configuration|update configs]] step&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Localserver&amp;diff=40596</id>
		<title>Development:Localserver</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Localserver&amp;diff=40596"/>
		<updated>2016-08-05T17:50:03Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: run a local server (info from evol wiki)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== Local server install and configure ======&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before look [[guidelines/firstdevstep|first steps and local server]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before this step [[guidelines/installmariadb|install and configure mariadb server]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Add local server repository ======&lt;br /&gt;
&lt;br /&gt;
1. Open command line in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
2. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If was no server-local repository, it will start cloning it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Now you can build server from sources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====== Build and install local server from sources ======&lt;br /&gt;
&lt;br /&gt;
For build server you must install different deps.&lt;br /&gt;
&lt;br /&gt;
  * mysqlclient-dev, mariadbclient-dev, libmysqlclient-dev, libmariadbclient-dev depend what sql and os you using.&lt;br /&gt;
  * libtool&lt;br /&gt;
  * zlib-dev or zlib1g-dev package&lt;br /&gt;
  * libpcre-dev package&lt;br /&gt;
  * gcc, make, automake, autoconf and may be some other common build tools.&lt;br /&gt;
&lt;br /&gt;
For build do this steps:&lt;br /&gt;
&lt;br /&gt;
1. Open command line in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
2. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/localserver&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you will see&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;~/evol-all/tools/localserver$ &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./installconfigs.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./build.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or if you have gcc &amp;lt; 4.8&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./build.sh old&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. If all went without errors now you can try to [[guidelines/runserver|run server]]&lt;br /&gt;
&lt;br /&gt;
====== Run local server ======&lt;br /&gt;
&lt;br /&gt;
Open three terminals in /evol-all/server-data/&lt;br /&gt;
&lt;br /&gt;
In first terminal run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./login-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In second terminal run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./char-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In last terminal run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./map-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All servers should not show errors.&lt;br /&gt;
&lt;br /&gt;
If you see error like &amp;quot;plugin not found&amp;quot; you should build server, something wrong happend and plugins not working.&lt;br /&gt;
&lt;br /&gt;
If you see &amp;quot;config not found&amp;quot; you probably running server not from server-data directory.&lt;br /&gt;
&lt;br /&gt;
====== Upgrade local server ======&lt;br /&gt;
&lt;br /&gt;
At first run ./pull.sh in evol-all directory for update all repositories.&lt;br /&gt;
&lt;br /&gt;
Then follow steps from &amp;quot;Build and install local server from sources&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also follow [[guidelines/updating#update_database|update database]] step&lt;br /&gt;
&lt;br /&gt;
And follow [[guidelines/updating#update_configuration|update configs]] step&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40595</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40595"/>
		<updated>2016-08-05T17:45:23Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[#ManaPlus|1.3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[#Run manaplus or client data / art / maps etc. development|1.3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40594</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40594"/>
		<updated>2016-08-05T17:44:49Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[#ManaPlus|1.3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[#run manaplus or client data / art / maps etc development|1.3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40593</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40593"/>
		<updated>2016-08-05T17:43:27Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[#ManaPlus|1.3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[#run_manaplus_or_client_dataartmaps_etc_development|1.3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40592</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40592"/>
		<updated>2016-08-05T17:41:42Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[#ManaPlus|1.3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[guidelines/firstdevstep#run_manaplus_or_client_dataartmaps_etc_development|3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40591</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40591"/>
		<updated>2016-08-05T17:41:09Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[#ManaPlus|3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[guidelines/firstdevstep#run_manaplus_or_client_dataartmaps_etc_development|3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40590</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40590"/>
		<updated>2016-08-05T17:40:50Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[#Manaplus|3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[guidelines/firstdevstep#run_manaplus_or_client_dataartmaps_etc_development|3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40589</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40589"/>
		<updated>2016-08-05T17:39:54Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[#manaplus|3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[guidelines/firstdevstep#run_manaplus_or_client_dataartmaps_etc_development|3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40588</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40588"/>
		<updated>2016-08-05T17:15:56Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[guidelines/firstdevstep#manaplus|3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[guidelines/firstdevstep#run_manaplus_or_client_dataartmaps_etc_development|3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40587</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40587"/>
		<updated>2016-08-05T17:06:51Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: **server-code**, **server-data**, **server-plugin**&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[guidelines/firstdevstep#manaplus|3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[guidelines/firstdevstep#run_manaplus_or_client_dataartmaps_etc_development|3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all directory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40586</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40586"/>
		<updated>2016-08-05T17:04:21Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developing for new Hercules server (TMW-Evol merge)==&lt;br /&gt;
&lt;br /&gt;
=== Create ssh key and upload it ===&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
=== Clone evol-all repository ===&lt;br /&gt;
&lt;br /&gt;
==== Open command line/terminal ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; ~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clone repository ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add tasks what you need ===&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server code development ====&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: **server-code**, **server-data**, **server-plugin**&lt;br /&gt;
&lt;br /&gt;
==== Run manaplus or client data / art / maps etc. development ====&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[guidelines/firstdevstep#manaplus|3.5]].&lt;br /&gt;
&lt;br /&gt;
==== Music ====&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Local server ====&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[guidelines/firstdevstep#run_manaplus_or_client_dataartmaps_etc_development|3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
====ManaPlus ====&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
===Install and configure mariadb server ===&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
===Run client and connect to server ===&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
===Upgrade repository urls ===&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Instructions for old EAthena server (obsolete)==&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Up===&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
====Install Dependencies====&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
====Set Up Own Server====&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
====Hosting Updates====&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
====Updating the Server====&lt;br /&gt;
&lt;br /&gt;
====  Running and Administrating the Server ====&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting ====&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
==== develop new content====&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
===Making Content===&lt;br /&gt;
====Making Map Content====&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
=====Python Converter Tool=====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Getting Art Content Into The Game====&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
=====Handling General Content Team [REQ]s=====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
====Bit Masking====&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
====Generating client updates====&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40585</id>
		<title>Development:How to Develop</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:How_to_Develop&amp;diff=40585"/>
		<updated>2016-08-05T16:44:27Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: import instructions from evol wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Developing for new Hercules server (TMW-Evol merge)=&lt;br /&gt;
&lt;br /&gt;
== Create ssh key and upload it ==&lt;br /&gt;
&lt;br /&gt;
create ssh key and upload it to gitlab.com&lt;br /&gt;
&lt;br /&gt;
https://about.gitlab.com/2014/03/04/add-ssh-key-screencast/&lt;br /&gt;
&lt;br /&gt;
== Clone evol-all repository ==&lt;br /&gt;
&lt;br /&gt;
=== Open command line/terminal ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;~$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Clone repository ===&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ git clone git@gitlab.com:evol/evol-all.git&lt;br /&gt;
Cloning into &#039;evol-all&#039;...&lt;br /&gt;
remote: Counting objects: 69, done.&lt;br /&gt;
remote: Compressing objects: 100% (67/67), done.&lt;br /&gt;
remote: Total 69 (delta 36), reused 0 (delta 0)&lt;br /&gt;
Receiving objects: 100% (69/69), 7.05 KiB | 0 bytes/s, done.&lt;br /&gt;
Resolving deltas: 100% (36/36), done.&lt;br /&gt;
Checking connectivity... done.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Add tasks what you need ==&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depend what kind of development you will do, you need run of any additional steps.&lt;br /&gt;
&lt;br /&gt;
Also you can mix any of 4.x. steps in one directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server code development ===&lt;br /&gt;
&lt;br /&gt;
If you want run or develop server code or server content, you must install &amp;quot;server&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: **server-code**, **server-data**, **server-plugin**&lt;br /&gt;
&lt;br /&gt;
=== Run manaplus or client data / art / maps etc. development ===&lt;br /&gt;
&lt;br /&gt;
If you want develop client side content, you must install &amp;quot;client&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;client-data&#039;&#039;&#039;, &#039;&#039;&#039;tools&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want latest ManaPlus version, you also should install task &amp;quot;manaplus&amp;quot; and build it. See [[guidelines/firstdevstep#manaplus|3.5]].&lt;br /&gt;
&lt;br /&gt;
=== Music ===&lt;br /&gt;
&lt;br /&gt;
If you want develop music, you must install &amp;quot;music&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh music&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Local server ===&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;server-local&#039;&#039;&#039;, &#039;&#039;&#039;server-code&#039;&#039;&#039;, &#039;&#039;&#039;server-data&#039;&#039;&#039;, &#039;&#039;&#039;server-plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably you also should add task &amp;quot;client&amp;quot; for running ManaPlus. See [[guidelines/firstdevstep#run_manaplus_or_client_dataartmaps_etc_development|3.2]].&lt;br /&gt;
&lt;br /&gt;
See also [[localserver|local server]]&lt;br /&gt;
&lt;br /&gt;
===ManaPlus ===&lt;br /&gt;
&lt;br /&gt;
If you want develop ManaPlus or want run ManaPlus from git, you should install &amp;quot;manaplus&amp;quot; task.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh manaplus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories: &#039;&#039;&#039;manaplus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===All===&lt;br /&gt;
&lt;br /&gt;
If you want all tasks at same time, you must install task &amp;quot;all&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
run command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./init.sh all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you will see repository cloning progress.&lt;br /&gt;
&lt;br /&gt;
After will be created new directories for all possible work.&lt;br /&gt;
&lt;br /&gt;
==Install and configure mariadb server ==&lt;br /&gt;
&lt;br /&gt;
For run server you need install and configure mysql or mariadb.&lt;br /&gt;
&lt;br /&gt;
[[guidelines/installmariadb|See here]]&lt;br /&gt;
&lt;br /&gt;
==Run client and connect to server ==&lt;br /&gt;
&lt;br /&gt;
Before running client you must install atleast &#039;&#039;&#039;server&#039;&#039;&#039; and &#039;&#039;&#039;client&#039;&#039;&#039; task or &#039;&#039;&#039;all&#039;&#039;&#039; task.&lt;br /&gt;
&lt;br /&gt;
If you want run ManaPlus and connect to local server, run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd tools/manaplus&lt;br /&gt;
./connect_local_server.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client will start and connect to server.&lt;br /&gt;
&lt;br /&gt;
==Upgrade repository urls ==&lt;br /&gt;
&lt;br /&gt;
If you cloned repository long ago, you need update repository urls.&lt;br /&gt;
&lt;br /&gt;
If you not cloned repository, follow step 1.&lt;br /&gt;
&lt;br /&gt;
Also you should register on https://gitlab.com/ and add own ssh key here.&lt;br /&gt;
&lt;br /&gt;
Before next steps you should open terminal in evol-all direcory.&lt;br /&gt;
&lt;br /&gt;
You should have something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$~/evol-all&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For update this repository url run this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git config remote.origin.url git@gitlab.com:evol/evol-all.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now pull from this updated url:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update all repositories urls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./upgrade.sh gitlab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;evol-all:&lt;br /&gt;
set origin to git@gitlab.com:evol/evol-all.git&lt;br /&gt;
client-data:&lt;br /&gt;
set origin to git@gitlab.com:evol/clientdata.git&lt;br /&gt;
...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step, you can pull from new repositories by run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./pull.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Instructions for old EAthena server (obsolete)=&lt;br /&gt;
&#039;&#039;&#039;For Windows 7, Windows 8, Windows 8.1 or Windows 10, [[Dev:Windows10|click here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re using Git as version control system for our source files and content. Have a look at our [[Working With Git|Tutorial]] about how to use Git. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set Up==&lt;br /&gt;
This is a how to help content development for official server (tmwAthena) 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 (tmwa-client-data), server-data (tmwa-server-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.&lt;br /&gt;
&lt;br /&gt;
===Install Dependencies===&lt;br /&gt;
&#039;&#039;&#039;  [https://www.debian.org/ Debian] derivates (including [http://www.ubuntu.com/ Ubuntu])&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo apt-get install g++ python make realpath git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;  [https://fedoraproject.org/ Fedora] derivates&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 sudo yum install gcc-c++ make git zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Note that you must have gcc 4.6 or later. Any modern distro will have this version, but &amp;quot;stable&amp;quot; distros with very long release cycles, such as Red Hat Enterprise Linux, might not.&lt;br /&gt;
&lt;br /&gt;
===Set Up Own Server===&lt;br /&gt;
&#039;&#039;&#039;Here are the steps to use when creating a new local testing server.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  mkdir ~/tmwAthena&lt;br /&gt;
  cd ~/tmwAthena/&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa.git&lt;br /&gt;
  git clone --recursive git://github.com/themanaworld/tmwa-server-data.git&lt;br /&gt;
  cd tmwa/&lt;br /&gt;
  echo &amp;quot;export PATH=$PATH:~/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
  source ~/.bashrc&lt;br /&gt;
  ./configure --user&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  git config --global url.git@github.com:.pushInsteadOf git://github.com &#039;&#039;{{ref|push}} {{ref|once}}&#039;&#039;&lt;br /&gt;
  cd ../tmwa-server-data&lt;br /&gt;
  make conf&lt;br /&gt;
* Preferably, add the update hooks.&lt;br /&gt;
  ln -s ../../git/hooks/post-merge .git/hooks/&lt;br /&gt;
  ln -s ../../../../git/hooks/post-merge .git/modules/client-data/hooks/ # &#039;&#039;(git 1.7.8 or newer)&#039;&#039;&lt;br /&gt;
  ln -s ../../../git/hooks/post-merge client-data/.git/hooks/ # &#039;&#039;(git 1.7.7 or older)&#039;&#039;&lt;br /&gt;
  cd client-data&lt;br /&gt;
  git checkout master&lt;br /&gt;
  cd music&lt;br /&gt;
  git checkout master&lt;br /&gt;
&lt;br /&gt;
===Hosting Updates===&lt;br /&gt;
TMW makes it easy to generate delta zips out of a repository, once it is initially set up.&lt;br /&gt;
&lt;br /&gt;
It will put them in ~/www/updates/, which may be a symlink to wherever your web server is really serving. Setting up a webserver is not covered here.&lt;br /&gt;
&lt;br /&gt;
Once everything is set up, just run &#039;make updates&#039; from the server-data dir every time client-data changes. It will do nothing if appropriate, generate complete zips the first time, and incremental zips afterwards.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* You must put news.txt and skeleton resources.xml file (and maybe an empty resources2.txt) in ~/www/updates/ first.&lt;br /&gt;
* Music updates are never added; they should be in the skeleton and updated manually if needed.&lt;br /&gt;
* You definitely want to run one of the analyzer scripts frequently, and remove the old updates.&lt;br /&gt;
&lt;br /&gt;
===Updating the Server===&lt;br /&gt;
&lt;br /&gt;
===  Running and Administrating the Server ===&lt;br /&gt;
&lt;br /&gt;
The TMWAthena is in fact 3 servers:&lt;br /&gt;
* &#039;&#039;&#039;tmwa-login&#039;&#039;&#039; which manages accounts and connection to char server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-char&#039;&#039;&#039; which manages  characters and connects them to the map server.&lt;br /&gt;
* &#039;&#039;&#039;tmwa-map&#039;&#039;&#039; which manages game content (maps, monsters, items, scripts...) and their interaction with characters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Start the servers: Open a terminal and run all the local servers. To stop them, either close the terminal or type control-C.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
  ./run-all&lt;br /&gt;
* In a new terminal, Launch &#039;&#039;&#039;tmwa-admin&#039;&#039;&#039; the administration tool, add yourself as an user and make yourself a GM:&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login&lt;br /&gt;
 tmwa-admin&lt;br /&gt;
 add &amp;lt;username&amp;gt; M &amp;lt;password&amp;gt; &lt;br /&gt;
 gm &amp;lt;username&amp;gt; 99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : Be sure that you are running tmwa-admin from within the &amp;quot;login/&amp;quot; directory. Check that the config files are correct: the connection port should be 6901 for tmwa&#039;s configuration, not 6900, which is the hard-coded default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039; [[GM Commands]]&lt;br /&gt;
&lt;br /&gt;
=== Connecting ===&lt;br /&gt;
# Open a command line terminal and run your client pointing to your client data and your local server :&lt;br /&gt;
  manaplus --server localhost --port 6901 -u -d ~/tmwAthena/tmwa-server-data/client-data&lt;br /&gt;
&lt;br /&gt;
If all went well, you are now ready to test new content and participate with development.&lt;br /&gt;
&lt;br /&gt;
=== develop new content===&lt;br /&gt;
&#039;&#039;&#039;You are now free to do some changes, first close the client and your servers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Notes for client data changes: 1) commit and push them in the client-data repo 2) commit and push &amp;quot;client-data&amp;quot; when it shows &amp;quot;(new commits)&amp;quot; in your server-data 3) commit and push other server data changes.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Make your modifications (e.g. Change a map) and save them.&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
  cd ~/tmwAthena/tmwa-server-data/client-data&#039;&#039;&lt;br /&gt;
  git status&#039;&#039;&lt;br /&gt;
  git add [modified files]&#039;&#039;&lt;br /&gt;
  git commit&#039;&#039;&lt;br /&gt;
  git push&#039;&#039; {{note|push}}&lt;br /&gt;
  cd ..&lt;br /&gt;
  make maps &#039;&#039;(if you changed a map)&#039;&#039;&lt;br /&gt;
  git status&lt;br /&gt;
  git add [modified files]&lt;br /&gt;
  git add client-data (if &#039;&#039;git status&#039;&#039; shows &#039;&#039;(new commits)&#039;&#039;. &#039;&#039;&#039;Don&#039;t do this if you don&#039;t have push access to client-data!&#039;&#039;&#039;)&lt;br /&gt;
  git commit&lt;br /&gt;
  git push {{note|push}}&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
{{note|push}} : a step for those with commit access to the remote repositories.  For others, you don&#039;t need to reconfigure your clone and please make a patch on steps where &#039;&#039;git push&#039;&#039; is suggested.  &lt;br /&gt;
&lt;br /&gt;
{{note|once}} : you only need to do this once, no matter how many times you independently clone the repositories.&lt;br /&gt;
&lt;br /&gt;
  git format-patch -M -C origin/master&lt;br /&gt;
* pastebin the patch(es) and post for review at irc.freenode.net channel: #themanaworld-dev or on our [http://forums.themanaworld.org/viewforum.php?f=18 development forums]. &#039;&#039;&#039;Extensive patches must be posted on the forum as a series of well-formed patches with descriptive commit messages.&#039;&#039;&#039; In particular, later patches should not fix errors introduced in earlier patches, and each patch should form a logically independent part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt; &#039;&#039;&#039;Note :&#039;&#039;&#039; This is kind of outdated; with github it&#039;s often easier to do patches on branches there. see: &#039;&#039;&#039;[[Working With Git]]&#039;&#039;&#039; page&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can also pull the data which has been modified.&#039;&#039;&#039;&lt;br /&gt;
* Open a terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data&lt;br /&gt;
 git pull&lt;br /&gt;
* If you haven&#039;t installed the hook, &lt;br /&gt;
 git submodule update --merge  &#039;&#039;at toplevel (for client-data) and in client-data (for music)&#039;&#039;&lt;br /&gt;
* Close the terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See Also:&#039;&#039;&#039; [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.&lt;br /&gt;
&lt;br /&gt;
==Making Content==&lt;br /&gt;
===Making Map Content===&lt;br /&gt;
See [[Mapping Tutorial]].&lt;br /&gt;
====Python Converter Tool====&lt;br /&gt;
After editing maps for the client, you need to generate the walkmaps and imports for the server. yhis can be done either by the &#039;&#039;&#039;[[Tiled]]&#039;&#039;&#039; application or by running the python script &#039;&#039;&#039;tmx_converter.py&#039;&#039;&#039; which is located in the &#039;&#039;&#039;tools&#039;&#039;&#039; folder of the &#039;&#039;&#039;Server Data&#039;&#039;&#039; folder.&lt;br /&gt;
(see [[Mapping Tutorial#Creating the WLK files]])&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Getting Art Content Into The Game===&lt;br /&gt;
* Post [CPT] or [WIP] art on the [http://forums.themanaworld.org/viewforum.php?f=8 graphics development forum].&lt;br /&gt;
* Work with the Art Director and collaborators on getting the art consistent.&lt;br /&gt;
* When finished, edit topic as [FND].&lt;br /&gt;
* 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].&lt;br /&gt;
* XML Team reviews or drafts xml related to the art, then commits the .png and .xml.  Topic can be marked as [GIT].&lt;br /&gt;
::* Art content affected: client-data/graphics/sprites then related directory for .png and .xml animation addition.&lt;br /&gt;
* Project developer requests database entry reservations from a General Content Team developer.&lt;br /&gt;
::* Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.&lt;br /&gt;
::* Map entry client data affected: .tmx files in the maps directory.&lt;br /&gt;
::* Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.&lt;br /&gt;
::* Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.&lt;br /&gt;
::* Art content client data affected: entry added in items.xml, monsters.xml or other identification file.&lt;br /&gt;
&lt;br /&gt;
====Handling General Content Team [REQ]s====&lt;br /&gt;
* General Content Team member adds a [REQ] topic to the graphics development forum.&lt;br /&gt;
* General Content Team member adds the [REQ] topic as a hyperlink under &amp;quot;Required Art&amp;quot; on the [[Art in Development]] page.&lt;br /&gt;
* Art Director attempts to network with other artists to assign the art to an artist.&lt;br /&gt;
&lt;br /&gt;
===Bit Masking===&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
[[Dev:Bit_mask_tutorial]]&lt;br /&gt;
&lt;br /&gt;
===Generating client updates===&lt;br /&gt;
* Shutdown all your servers.&lt;br /&gt;
&lt;br /&gt;
* First we are going to check the config files to be sure the paths are correct.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 add-git-attributes  edit-all-to-export-tilesets.sh  formatXML.sh  list-tileset-order  map-db.py       minimap-render.py&lt;br /&gt;
 adler32             edit-map-tileset-names.sh       indent.xsl    make-updates        map-diff.py&lt;br /&gt;
 End of output &lt;br /&gt;
&lt;br /&gt;
* The easiest solution is to create a symbolic link to that directory &lt;br /&gt;
ln -s /var/www/tmwupdates ~/www/updates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
* You can Edit the make-updates file with gedit or nano or vi.&lt;br /&gt;
Search for the folowing lines:&lt;br /&gt;
output=~/www/updates&lt;br /&gt;
And change them to:&lt;br /&gt;
output=/var/www/tmwupdates (your public www folder is /tmwupdates)&lt;br /&gt;
&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/login/conf&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
 Output:&lt;br /&gt;
 ladmin_athena.conf         lan_support.conf   login_local.conf.example &lt;br /&gt;
 ladmin_local.conf          login_athena.conf &lt;br /&gt;
 ladmin_local.conf.example  login_local.conf &lt;br /&gt;
 End of output&lt;br /&gt;
&lt;br /&gt;
*Edit the login_local.conf with an editor and look for the following line:&lt;br /&gt;
 update_host: http://updates.themanaworld.org/&lt;br /&gt;
*Change that line to:&lt;br /&gt;
 update_host: http://127.0.0.1/tmwupdates/ (or use your external ip)&lt;br /&gt;
*Save the file and get back in the terminal.&lt;br /&gt;
 &lt;br /&gt;
* Open a terminal. &lt;br /&gt;
First we compile the adler32 tool to generate a hash.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/client-data/tools/adler32/ &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
 Output must be: &lt;br /&gt;
 gcc -lz -o adler32 adler32.c&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Now that we compiled the adler tool we can make us a update.&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
* Each time you want to make new updates&lt;br /&gt;
 make sure you have a new commit then&lt;br /&gt;
 cd ~/tmwAthena/tmwa-server-data/&lt;br /&gt;
 make updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Terranite&amp;diff=40563</id>
		<title>Terranite</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Terranite&amp;diff=40563"/>
		<updated>2016-06-11T10:01:33Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: make the link to the terranite armor work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{I18n}}&lt;br /&gt;
{{Category_playerinfo}}&lt;br /&gt;
{{Monster&lt;br /&gt;
|Name             = [[Terranite]]&lt;br /&gt;
|Image            = [[Image:Terranite.png]]&lt;br /&gt;
|Behavior         = Aggressive&lt;br /&gt;
|Mutations        = May mutate 2 attributes up to 30%.&lt;br /&gt;
|Level            = 110&lt;br /&gt;
|HP               = 6000&lt;br /&gt;
|EXP              = 2484&lt;br /&gt;
|Job EXP          = 889&lt;br /&gt;
|ID               = 1062&lt;br /&gt;
|Strength         = 60&lt;br /&gt;
|Agility          = 40&lt;br /&gt;
|Vitality         = 40&lt;br /&gt;
|Intelligence     = 30&lt;br /&gt;
|Dexterity        = 60&lt;br /&gt;
|Luck             = 40&lt;br /&gt;
|Attack           = 200-300&lt;br /&gt;
|Range            = 1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Terranite&#039;&#039;&#039; is a rare, strong aggresive monster, that looks like a player wearing a complete set of [[The Terranite Armor]]. It&#039;s the only natural source of [[Terranite Ore]]. &#039;&#039;&#039;Terranites&#039;&#039;&#039; can be found only in the [[Terranite Cave]] and the [[Troll Cave]].&lt;br /&gt;
&lt;br /&gt;
==As source of profit==&lt;br /&gt;
Some players consider it profitable to hunt large numbers of &#039;&#039;&#039;Terranites&#039;&#039;&#039; and trade their loot.&lt;br /&gt;
* Average profit from a single Terranite assuming you sell all drops to a NPC: 0.06*100 + 0.05*250 + 0.05*100 + 0.002*2500 + 0.002*2500 + 0.002*2500 = &#039;&#039;&#039;38.5 GP&#039;&#039;&#039;. This is a small number, especially when we consider efforts that are needed to kill a Terranite. However, all items dropped by Terranite are worth much more when sold to other players. In such case, average profit from a single Terranite can be about: 0.06*900 + 0.05*18000 + 0.05*2000 + 0.002*40000 + 0.002*15000 + 0.002*35000 = &#039;&#039;&#039;~1200 GP&#039;&#039;&#039;, which is a &#039;&#039;&#039;totally&#039;&#039;&#039; different story (prices taken from [[ManaMarket]] statistics).&lt;br /&gt;
* Keep in mind that this is an average profit. What it means is that it does not apply when you kill a single Terranite, it means that when you kill 100 Terranites, your profit will be &#039;&#039;&#039;about&#039;&#039;&#039; 1200*100 = 120,000 GP.&lt;br /&gt;
* The speed of your income dependes on how fast you can kill Terranites. They have a big HP, and thus it takes a while to kill one. A skilled archer can kill a Terranite in 30 seconds, but high-level players might do that even faster, especially if they have great AGI or deal huge damage. Taking 30sec/terra for calculations, we get 120 Terranites per hour. That gives profit equal to 120*1200gp/h = &#039;&#039;&#039;144&#039;000gp/h&#039;&#039;&#039;.&lt;br /&gt;
* Your actual profit will be lower. This is because 1) you are never hunting Terranites 100% of your time, sometimes you wait for them to respawn 2) you need to subtract the cost of arrows/spells and healing items, if you need them 3) sometimes nobody wants to buy a particular item.&lt;br /&gt;
&lt;br /&gt;
This proves that &#039;&#039;&#039;Terranites&#039;&#039;&#039; are not as efficient source of profit as [[Red Slime|Red Slimes]], which - in ideal conditions - can provide &#039;&#039;&#039;180&#039;000gp/h&#039;&#039;&#039;, mainly because they are very quick to kill and are usually found in big quantities. However, if you wish to gain more EXP while gathering money, or are looking for some [[Terranite Ore]] for your own uses, &#039;&#039;&#039;Terranites&#039;&#039;&#039; continue to be profitable mobs.&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
* [[Coal]] (6%)&lt;br /&gt;
* [[Terranite Ore]] (5%)&lt;br /&gt;
* [[Iron Ore]] (5%)&lt;br /&gt;
* [[Amethyst]] (0.2%)&lt;br /&gt;
* [[Emerald]] (0.2%)&lt;br /&gt;
* [[Sapphire]] (0.2%)&lt;br /&gt;
&lt;br /&gt;
== Story == &lt;br /&gt;
Terranites are only found in deepest caves named Terranite Caves by Manaworldians. They constantly live under the surface because their body is not adapted to see light.&lt;br /&gt;
Actually, in the opposite of many other monsters, Terranites are intelligent living forms, more intelligent than manaworldians themselves. You may wonder what&#039;s the proof of that ?&lt;br /&gt;
Well, you could find it by sitting and observing both communities, even if you can see a lower nomber of Terranites than Manaworldians. Here are fundamental different aspects:&lt;br /&gt;
* While Manaworldians hunt Terranites for the rare and rich items they carry on, Terranites never come to fight Manaworldians to stole their items. Every single fight between a Manaworldian and a Terranite involves an attacking Manaworldian and a defending Terranite. You can find only one exception... when Terranites join the chaos sometimes taking place in Hurnscald, to have a taste of revenge against Manaworldians looters.&lt;br /&gt;
* Terranites try to defend themselves in community, often with a group of three, even if they&#039;re rather powerful. Manaworldians, even weak, try to beat them alone... &lt;br /&gt;
* The most interesting thing is when a Manaworldian attacks Terranites with a friend. Some of them kills between themselves, but some others &#039;&#039;&#039;seems&#039;&#039;&#039; to behave like a community. I say &#039;&#039;&#039;seems&#039;&#039;&#039; because they can be considered like a group until a fallen Terranites drops a rare gem. When it happens, the group suddenly breaks to decide who&#039;s the owner of the drop, which is of course the survivor. After that, the fallen despaired and stolen Manaworldian regularly comes back trying to kill the thief of insulting him. What a pity for Terranites to see and hear that...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have noticed other characteristics of Terranites investigating on them, such as:&lt;br /&gt;
* You can find Terranites in great depth range under the earth, but also on the frozen surface. In fact, their skin looks so evoluted that they can survive in a lot of different environments. They are almost insensitive to variations of temperature. However, they are very light sensitive, but they make excellent light-stopping full-body armors as a remedy.&lt;br /&gt;
* They make strong and extremely light armors from an unknown ore only sometimes found on them, hence called the &#039;&#039;Terranite Ore&#039;&#039;. Amethysts, Sapphire or other precious gems are rare and really hard to find, but you can still find them digging. However, none Manaworldian have ever found a single Terranite Ore except dropped or abandoned by a Terranite...&lt;br /&gt;
* When a Manaworldian kills a Terranite and see a Terranite Ore, he is then very happy, because it is a rare drop. He will be able to sell it a high price to others, or even to attempt making his own Terranite Armor. However, some intrepid ones have even tried to unwear a dead Terranite in order to stole its armor, certainly to become even reacher or to get the armor faster. But read well... I was amazed to see that none have been able to unwear a Terranite&#039;s armor. The armor seems clearly moving when the Terranite is still alive, but as soon as it dies, the armor rigidifies and becomes incredibly heavy, to finally explode after a certain time.&lt;br /&gt;
* You will never hear the voice of a Terranite. However, their group coordination is excellent. How do they understand each other ? They probably have a telepathic communicating way, much more evoluted than our and much more efficient during battles. Also, even trying to talk them, they never respond. Maybe they haven&#039;t the ability to speak &#039;normally&#039; at all. But I think the main problem is that they even don&#039;t try to speak with us. That&#039;s pretty normal since nearly every single Manaworldian is only trying to kill them...&lt;br /&gt;
* Finally, the most amazing thing is their ability to travel right into rocks ! Haven&#039;t you ever be stunned by how they spawn right in front of your face, leaving you almost die of fear. It&#039;s hard to describe because they manage to move into rocks faster than into the air. This could explain why do they respawn so quickly after one of them died, or also how fast do they travel to join Hurnscald&#039;s chaos and have their revenge on Manaworldians.&lt;br /&gt;
&lt;br /&gt;
Well, after all these considerations, you will probably never see a Terranite the same way. The following are only hypothesis I have made on their history, since because of the overall they don&#039;t want to talk with Manaworldians...&lt;br /&gt;
* It seems to exist a large number of Terranites on TMW. However, whereas evil monsters appears directly from condensed evil or when summoned and forest monsters from deeper bushes, where do all these Terranites live ? I have always wondered about that, and I think I have some piece of answer, linked to their rock-through travelling ability. As they are slower in our current air, you mostly see them in Terranite cave harvesting things for their own purposes. I&#039;m pretty sure that they don&#039;t live in such place. Then, maybe they live directly into rocks, or maybe they live deeper in the planet, in a place where conditions are better for them. In fact, Manaworldians are unable to swim. Maybe a path leading to their &#039;city&#039; is just a the other shore of the big eastern Terranite Cave lake ?&lt;br /&gt;
* But for how long are they here ? Histories involving Terranites have always been heard from intrepid adventurers, even centuries before the big earthquake. Do Terranites lived on TMW way before us ? I&#039;m pretty sure of it: you can find really old hints of they existence looking closely at the Cave&#039;s walls. These seems to be much older than Manaworldians hint. Nevertheless, their existence on TMW is clearly inadapted since they depend on an armor that seems vital for them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* So why are Terranites here, why does anyone have never seen their real face, behind their armor mask ? Are they cursed ? Are they unbelievably freaky ? Are they currently doomed to slowly die from greedy hunters and an inadapted environment ? I doubt it, because every story dealing with them talks about their mystery and difficulty to survive. It might be crazy, but I&#039;m sure that the Terranites you can see, considering the amazing technology they have, are either the remnants of another civilisation, either only a small group of this civilisation, but they obviously come from another world, way different than our... as told by Kazenawa&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Candor_Quests&amp;diff=40530</id>
		<title>Candor Quests</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Candor_Quests&amp;diff=40530"/>
		<updated>2016-05-06T10:27:04Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: fix spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Meta}}{{I18n}}&lt;br /&gt;
{{Category playerinfo}}&lt;br /&gt;
{{Status green}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Quest&lt;br /&gt;
|Image         = [[Image:MapCandor.png|thumb]]&lt;br /&gt;
|Start         = 029-2 [[Candor Island]]&lt;br /&gt;
|Reward        = Various Items&lt;br /&gt;
}}&lt;br /&gt;
===Sorfina===&lt;br /&gt;
[[Image:NPCSorfina.png|&amp;lt;center&amp;gt;Sorfina&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
* Walk near Sorfina. She will begin the dialogue.&lt;br /&gt;
* She will explain the game rules and some basics. After that, she will give some basic equipments including:&lt;br /&gt;
&lt;br /&gt;
** 1 [[Cotton Shirt]]&lt;br /&gt;
** 1 [[Ragged Shorts]]&lt;br /&gt;
** 1 [[The Lost Hitchhiker|Hitchhiker&#039;s Towel]].&lt;br /&gt;
** 30 GP &lt;br /&gt;
Now you can go to talk to Tanisha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You can skip the dialogue with Sorfina, but it&#039;s not recommended, in this case you will not be able to help Tanisha in her tasks and you will receive : &lt;br /&gt;
&lt;br /&gt;
** 1 [[Cotton Shirt]]&lt;br /&gt;
** 1 [[Ragged Shorts]]&lt;br /&gt;
** 1 [[The Lost Hitchhiker|Hitchhiker&#039;s Towel]]&lt;br /&gt;
** 1 [[Knife]]&lt;br /&gt;
** 1 [[Sling Shot]]&lt;br /&gt;
** 500 [[Sling Bullet]]s&lt;br /&gt;
** 50 GP &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Find the script: [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-2/sorfina.txt here]&lt;br /&gt;
&lt;br /&gt;
===Tanisha===&lt;br /&gt;
&lt;br /&gt;
[[Image:Tanisha.png|&amp;lt;center&amp;gt;Tanisha&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Once the dialogue with Sorfina is finish, you have to talk with Tanisha.&lt;br /&gt;
She have some tasks to do but she is disgusted by the maggots, you chose to help her.&lt;br /&gt;
* Tanisha gives you a knife and some others weapons, and tells you to kill the maggots.&amp;lt;br&amp;gt;Kill 5 maggots. You will get some EXP (5 * 6 EXP), which will level up your character. &lt;br /&gt;
* When you are done with the maggots, talk to Tanisha. She will inform you about things such as status points, since you just leveled up.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: If you have skip the dialogue with Sorfina, you are not able to do this part.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
** Knife &lt;br /&gt;
** 1 [[Sling Shot]]&lt;br /&gt;
** 500 [[Sling Bullet]]s&lt;br /&gt;
** 5 * 6 EXP&lt;br /&gt;
** 5GP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Find the script: [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-2/tanisha.txt here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jessie===&lt;br /&gt;
&lt;br /&gt;
[[Image:Jessie.png|&amp;lt;center&amp;gt;Jessie&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
* You may need to reset your stats. You can&#039;t reset your stats though Jessie after you are above level 10.&lt;br /&gt;
* There are others NPCs who can help you to [[Stats reset|reset your stats]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Find the script: [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-2/stat_reset.txt here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Valon===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Valon.png|&amp;lt;center&amp;gt;Valon&amp;lt;/center&amp;gt;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Valon works for The Council of Wizard&#039;s, who offer rewards for helping exterminate the pests on Candor Island. &lt;br /&gt;
Each time you help him, he will reward you.&lt;br /&gt;
&lt;br /&gt;
* Kill 10 [[Maggot]]s and he will reward you with 40 Exp, 25 gp&lt;br /&gt;
* Kill 5 [[House Maggot]]s and he will reward you with 40 Exp, 25 gp&lt;br /&gt;
* Kill 3 [[Tame Scorpion]]s and he will reward you with 40 Exp, 25 gp&lt;br /&gt;
* Kill 1 [[Scorpion]] and he will reward you with 40 Exp, 25 gp&lt;br /&gt;
&lt;br /&gt;
Bonus: 50 Exp for completing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Find the script: [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-1/valon.txt here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Zegas&#039;s Barrels===&lt;br /&gt;
&lt;br /&gt;
[[Image:Zegas.png|&amp;lt;center&amp;gt;Zegas&amp;lt;/center&amp;gt;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Talk to Zegas, she will ask you help to find the bug bomb that [[Eomie]] gave her, the bug bomb is in the storeroom in one of the barrels.&amp;lt;br&amp;gt;&lt;br /&gt;
But the store room is full of [[House Maggot]]s, they will attack you as soon as you enter the room.&amp;lt;br&amp;gt;&lt;br /&gt;
Search the bug bomb in the barrels and get random reward or possibly find a maggot, ewww!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 50 Exp, 50 GP for completion + random loot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Find the scripts: [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-1/zegas.txt here], [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-2/barrels.txt  here for the barrels], [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-2/barrels_config.txt here for the barrels config]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Morgan===&lt;br /&gt;
&lt;br /&gt;
[[Image:Morgan.png|&amp;lt;center&amp;gt;Morgan&amp;lt;/center&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Morgan]] is the mage who lives and teach magical [[Spells|spell]] on the Candor Island. This is your first contact with the magical world and his [[Magic Quests|quests]].&lt;br /&gt;
But she will only talks to those that posses enough magical talent.&lt;br /&gt;
* So talk to her with 5 points in [[Stats#Leveled Stats|Intelligence]], and she will give you, your first magician [[Wand]].&lt;br /&gt;
* She will ask you to equip it and she will teach how to use your [[Item Reference/1-Handed Weapons|Wand]] with the [[Spells|spell]] #confringo.&lt;br /&gt;
* Morgan will not teach you more, you will have to leave her and to learn by yourself more about [[Magic|magic]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint :&#039;&#039;&#039; if you already have allocate all your stats points, and none remain, talk to Jessie, he will [[Stats Reset|reset]] your stats if your level is lower than 10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* Wand&lt;br /&gt;
* 1 spell: #confringo &lt;br /&gt;
&lt;br /&gt;
Find the script: [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-2/morgan.txt here]&lt;br /&gt;
&lt;br /&gt;
===Hasan===&lt;br /&gt;
&lt;br /&gt;
[[Image:Hasan.png|&amp;lt;center&amp;gt;Hasan&amp;lt;/center&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
* As you go north of Candor Island , you go past Hasan. Don&#039;t try to kill him, as you will probably die by doing this.&lt;br /&gt;
* Talk to Kaan, tell him that Hasan is bully someone.&lt;br /&gt;
* You now need to know what is Hasan&#039;s weakness. Come back to Sorfina and tell her everything about Hasan. She will tell you that he is awfully scared of scorpions.&lt;br /&gt;
* Tell Kaan about the scorpions, and you will plot against Hasan. Go back to Hasan and talk to him and scratch your head as a signal. Kill the scorpion that has just appeared!&lt;br /&gt;
* Talk to Hasan and he will give you a Sharp Knife for your help.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rewards:&#039;&#039;&#039; &lt;br /&gt;
* 1 [[Sharp Knife]]&lt;br /&gt;
&lt;br /&gt;
Find the scripts: [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-1/hasan.txt here for Hasan] and [https://github.com/themanaworld/tmwa-server-data/blob/stable/world/map/npc/029-1/kaan.txt here for Kaan]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rewards for all these quests===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rewards:&#039;&#039;&#039;  &lt;br /&gt;
* 1 [[Cotton Shirt]]&lt;br /&gt;
* 1 [[Ragged Shorts]]&lt;br /&gt;
* 1 [[The Lost Hitchhiker|Hitchhiker&#039;s Towel]]&lt;br /&gt;
* 1 [[Knife]]&lt;br /&gt;
* 1 [[Sling Shot]]&lt;br /&gt;
* 500 [[Sling Bullet]]s&lt;br /&gt;
* 1 [[Sharp Knife]]&lt;br /&gt;
* 1 [[Wand]]&lt;br /&gt;
* some random items&lt;br /&gt;
* 185 GP&lt;br /&gt;
* 250 EXP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Where to go now ?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the way to Hurnscald and on Candor you will find many Non Player Characters [[NPCs]] who will tell you about the game and whom among them you have to speak to.&amp;lt;br&amp;gt;&lt;br /&gt;
Think to register with [[Aidan And Ishi&#039;s Monster Points]] you will need this to win some items and for some quests too.&amp;lt;br&amp;gt;&lt;br /&gt;
If you have already reach the level 10 you can go to Hurnscald and talk to [[Newbie Graduation|Ian]] to recieve your graduation cap.&amp;lt;br&amp;gt;&lt;br /&gt;
Especially, but not only, you should try to find [[Ayasha&#039;s Hide and Seek|Ayasha]], to do the &lt;br /&gt;
[[Newbie Quests|quests for new players]], to help [[Banu]], [[Kylian the Businessman|Kylian]], [[Imec]], [[Anwar&#039;s field|Anwar]], and more by consulting the [[Quests#Overview of all Quests|board quest]], you will find there who need your help now. To satisfy their needs you will have to carefully explore &amp;lt;span style=&amp;quot;color:blue; font-size:100%&amp;quot;&amp;gt;&#039;&#039;&#039;[[World Map|The Mana World]]&#039;&#039;&#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quest]]&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Item_Reference/Head_Armor&amp;diff=40529</id>
		<title>Item Reference/Head Armor</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Item_Reference/Head_Armor&amp;diff=40529"/>
		<updated>2016-05-05T10:03:02Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: celestia now gives a beret&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Item Reference Page}}&lt;br /&gt;
&lt;br /&gt;
The items are sorted first by defense, then by magic bonus, then by price, then by ID.&lt;br /&gt;
&lt;br /&gt;
==Head Armor== &lt;br /&gt;
{| class=&amp;quot;wikitable responsive&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#99ee99;&amp;quot; | Image&lt;br /&gt;
! style=&amp;quot;background:#99ee99;height:48px;&amp;quot; | Name (ID)&lt;br /&gt;
! style=&amp;quot;background:#99ee99;&amp;quot; | Defense&lt;br /&gt;
! style=&amp;quot;background:#99ee99;&amp;quot; | BUY/Sell&lt;br /&gt;
! style=&amp;quot;background:#99ee99;&amp;quot; | Weight&lt;br /&gt;
! style=&amp;quot;background:#99ee99;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;background:#99ee99;&amp;quot; | Rarity&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-paperbag.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Paper Bag]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1218)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;5 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A paper bag with eye holes.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-bunchofparsley.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Bunch of Parsley]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1220)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 GP&amp;lt;br&amp;gt;1 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A bunch of parsley, useful for salads and many other dishes. In a pinch, it doubles as earplugs.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Halloween 2011&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-mouboohead.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Mouboo Head]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1216)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 GP&amp;lt;br&amp;gt;1 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 80&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A tightly fitting mouboo head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-moubootaurhead.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Moubootaur Head]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1219)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 GP&amp;lt;br&amp;gt;1 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 80&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | The Moubootaur&#039;s head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Unobtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-catears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Cat Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1217)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 100 GP&amp;lt;br&amp;gt;50 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A pair of plush cat ears. Meow!&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Cat Ears Quest|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-pinkiehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Pinkie Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(751)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | With this, you&#039;ll fit right in with those strange pinkies.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Rare drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-autumnmask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Autumn Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1175)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Party away! No one will recognize you wearing this mask.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Trick Or Treat|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-phylactery.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Phylactery]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(5130)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Cast Speed +10% / -1/2 Dex&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 50000 GP&amp;lt;br&amp;gt;10000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | This phylactery glows with power&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Unreleased&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-redrosehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Red Rose Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(897)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +8&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A beautiful flower that can be worn on the head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Orum and Waric follow-up quest|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-whiterosehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[White Rose Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(898)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +8&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A beautiful flower that can be worn on the head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Blossom|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-pinkrosehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Pink Rose Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(899)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +8&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A beautiful flower that can be worn on the head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Blossom|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-yellowrosehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Yellow Rose Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(900)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +8&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A beautiful flower that can be worn on the head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Blossom|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-orangerosehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Orange Rose Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(901)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +8&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A beautiful flower that can be worn on the head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Blossom|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-bluerosehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Blue Rose Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(902)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +8&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A beautiful flower that can be worn on the head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Blossom|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-cashiersshade.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Cashiers&#039; Shade]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1174)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -10&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 4000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Green Shade. Helpful for counting your goldpieces.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Unreleased&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-fluffyhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Fluffy Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(752)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -5&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;2000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Now you can wear fur on your head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Rare drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-santahat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Santa Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(511)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 400 GP&amp;lt;br&amp;gt;200 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Ask Santa about this hat.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Rare drop, [[Quest Of Snowman|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-earmuffs.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Earmuffs]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(848)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | This earmuffs can keep your ears enjoyably warm.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Unreleased&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-rangerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Ranger Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1203)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A leather hat traditionally worn by rangers.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Frequent drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-goggles.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Goggles]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(618)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 500 GP&amp;lt;br&amp;gt;100 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Goggles designed to take care of your eyes.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-serfhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Serf Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(656)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 500 GP&amp;lt;br&amp;gt;100 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A simple hat made from cloth.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Buyable, [[Newbie Quests#Sarah|Quest]], [[Aidan And Ishi&#039;s Monster Points|Ishi]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-graduationcap.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Graduation Cap]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(675)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A traditional cap which a university student may wear upon graduating.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Newbie Graduation|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-cottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(724)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Just a cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Buyable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-redcottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Red Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2140)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Just a red cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-greencottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Green Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2141)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Just a green cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-darkbluecottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Dark Blue Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2142)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Just a dark blue cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-yellowcottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Yellow Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2143)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Just a yellow cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-lightbluecottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Light Blue Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2144)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Just a light blue cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-pinkcottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Pink Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2145)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Just a pink cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-blackcottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Black Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2146)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Just a black cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-orangecottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Orange Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2147)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Just an orange cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-purplecottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Purple Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2148)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Just a purple cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-darkgreencottonheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Dark Green Cotton Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2149)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Just a dark green cotton headband.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-monocle.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Monocle]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(4031)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Dexterity +1 / Luck +1 / Critical Damage +20&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A handy perception tool, even when not at the opera.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Unreleased&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-chefhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Chef Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(4033)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A tall hat designed for the person in charge of a kitchen. It smells like onions.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2012&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-christmastreehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Christmas Tree Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1205)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat shaped like a Christmas tree.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-sunglasses.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Sunglasses]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(855)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +6&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Some stealthy sunglasses hiding your eyes from skeptical eyes.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Christmas 2011&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-rednose.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Rednose]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(4042)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +7&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 4000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A funny red nose. You look like a Christmas reinboo with it!&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Rare drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-standardheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Standard Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(543)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 800 GP&amp;lt;br&amp;gt;400 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A standard headband.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Buyable, Frequent drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-deserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(723)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | While the desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Buyable, [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-reddeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Red Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2130)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | While the red desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-greendeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Green Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2131)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | While the green desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-darkbluedeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Dark Blue Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2132)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | While the dark blue desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-yellowdeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Yellow Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2133)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | While the yellow desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-lightbluedeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Light Blue Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2134)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | While the light blue desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-pinkdeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Pink Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2135)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | While the pink desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-blackdeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Black Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2136)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | While the black desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-orangedeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Orange Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2137)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | While the orange desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-purpledeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Purple Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2138)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | While the purple desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-darkgreendeserthat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Dark Green Desert Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2139)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2400 GP&amp;lt;br&amp;gt;600 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | While the dark green desert hat is perfect for sand storms, it won&#039;t help you much against a blow to the head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Lora Tay The Legendary Seamstress|Tailorable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-leathergoggles.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Leather Goggles]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(619)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Goggles designed for desert storms.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-eyepatch.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Eyepatch]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(621)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | What really makes you a pirate.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-bandana.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Bandana]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(622)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A striped bandana.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Frequent drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-guyfawkesmask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Guy Fawkes Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(769)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 50&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | The famous Guy Fawkes mask.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Halloween 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-knitcap.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Knit Cap]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(856)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 50&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A knitted cap keeping your head warm in the cruel cold.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Santa&#039;s Stolen Presents|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-beret.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1196)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A simple beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Celestia&#039;s Groceries|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-operamask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Opera Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1276)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 50&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Pale and broken. There is surely a story to be told here.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Halloween 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-jestermask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Jester Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1277)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 50&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Laughter with bells on.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Halloween 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-witchhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Witch Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1278)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 50&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Big, dark, and pointy. It looks a bit out of place.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Halloween 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-goblinmask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Goblin Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1279)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 50&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A strange dark mask. Who knows what lurks behind it?&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Halloween 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-redberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Red Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2260)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A simple red beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-greenberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Green Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2261)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A simple green beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-darkblueberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Dark Blue Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2262)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A simple dark blue beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-yellowberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Yellow Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2263)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A simple yellow beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-lightblueberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Light Blue Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2264)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A simple light blue beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-pinkberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Pink Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2265)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A simple pink beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-blackberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Black Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2266)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A simple black beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-orangeberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Orange Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2267)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A simple orange beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-purpleberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Purple Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2268)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A simple purple beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-darkgreenberet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Dark Green Beret]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2269)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A simple dark green beret. Fluffies look utterly cute with it.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-nohmask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Noh Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(678)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A traditional Japanese mask worn in Noh plays.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Robberies In Hurnscald|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-elfnightcap.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Elf Nightcap]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(854)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 50&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A comfortable nightcap worn by Santa&#039;s helpers.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Christmas 2011&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-demonmask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Demon Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(679)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A scary mask to make you look like a demon.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Demon Mask|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-skullmask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Skull Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1221)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 150&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A mask made out of bones.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Rare drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-yetimask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Yeti Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(4027)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -10&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 6000 GP&amp;lt;br&amp;gt;3000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A mask made from the yeti&#039;s head.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Frequent drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-minershat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Miner&#039;s Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(525)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -8&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 800 GP&amp;lt;br&amp;gt;400 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat used by miners.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Rare drop, [[Newbie Quests#Miners_Quest|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-piratehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Pirate Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(617)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -8&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A pirate hat.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Frequent drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-pumpkinhelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Pumpkin Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(615)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A helmet made out of a pumpkin.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Frequent drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-axehat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Axe Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(616)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 50&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A really cool joke.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Frequent drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-crown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Crown]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(646)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 240&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A jewel embossed crown fit for any ruler.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Unobtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-murderercrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Murderer Crown]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(889)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 75000 GP&amp;lt;br&amp;gt;12000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 240&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Royal blood has been shed for the ownership of this crown.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Game Masters/Events#Kill_the_GM|GM Event]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-antlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Antler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1204)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat with antlers sticking out of it.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-beaniecopter.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Beanie Copter]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(890)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 8000 GP&amp;lt;br&amp;gt;2000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A funny beanie cap with a spinning propeller.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Milly&#039;s Hero|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-circlet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Circlet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(620)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A nice piece of jewelry.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Frequent drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-heartglasses.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Heart Glasses]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1247)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7500 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Heart Glasses from another universe. Decisions were different there.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-highpriestcrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[High Priest Crown]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(721)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +20&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;+20 SP&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 4 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30000000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 400&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A golden crown with an enchanted ruby.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Buyable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-fairyhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Fairy Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(770)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -10&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Luck +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2000 GP&amp;lt;br&amp;gt;1000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | The famous hat worn by Robin Hood.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Bandit Quest|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-snowgoggles.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Snow Goggles]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1242)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7500 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Snow Goggles to keep your eyeballs from freezing.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-fancyhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Fancy Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(524)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1600 GP&amp;lt;br&amp;gt;800 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A fancy hat.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Buyable, Rare drop, [[Aidan And Ishi&#039;s Monster Points|Ishi]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-buckethat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Bucket]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(905)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1600 GP&amp;lt;br&amp;gt;800 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A Bucket for your head.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Trick Or Treat|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-cap.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Cap]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(654)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20000000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat with a peak to shield your eyes from the sun.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Buyable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-nutcrackerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Nutcracker Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1190)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Now you will look just like a Nutcracker!&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Christmas Event|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-santabeardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Santa Beard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1206)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Now you will look just like Santa Claus!&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-rabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[White Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1255)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A headband with rabbit ears, pure white.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-redrabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Red Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2190)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A headband with rabbit ears, bright red.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-greenrabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Green Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2191)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A headband with rabbit ears, warm green.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-darkbluerabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Dark Blue Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2192)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A headband with rabbit ears, iridescent dark blue.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-yellowrabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Yellow Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2193)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A headband with rabbit ears, soft yellow.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-lightbluerabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Light Blue Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2194)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A headband with rabbit ears, light blue.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-pinkrabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Pink Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2195)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A headband with rabbit ears, bright pink.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-blackrabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Black Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2196)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A headband with rabbit ears, deep black.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-orangerabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Orange Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2197)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A headband with rabbit ears, bright orange.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-purplerabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Purple Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2198)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A headband with rabbit ears, strong purple.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-darkgreenrabbitears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Dark Green Rabbit Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2199)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +4&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A headband with rabbit ears, dark green.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-developerscap.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Developer&#039;s Cap]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(647)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A cap which identifies you as a developer.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Dev:Joining the project|Special Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-gmcap.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[GM Cap]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(725)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A cap which identifies you as a GM. Only GMs can wear this.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Game Masters|Game Master]] only&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-redwizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Red Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2200)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A wizard hat, bright red.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-greenwizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Green Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2201)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A wizard hat, warm green.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-darkbluewizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Dark Blue Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2202)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A wizard hat, iridescent dark blue.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-yellowwizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Yellow Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2203)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A wizard hat, soft yellow.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-lightbluewizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Light Blue Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2204)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A wizard hat, light blue.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-pinkwizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Pink Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2205)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A wizard hat, bright pink.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-blackwizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Black Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2206)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A wizard hat, deep black.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-orangewizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Orange Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2207)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A wizard hat, bright orange.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-purplewizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Purple Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2208)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A wizard hat, strong purple.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-darkgreenwizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Dark Green Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2209)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A wizard hat, dark green.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]], [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-wizardhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Wizard Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(4028)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +5&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Intelligence +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A simple wizard hat.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Angela&#039;s Daughter|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-whitecowboyhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[White Cowboy Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(643)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -12&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 6 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1800 GP&amp;lt;br&amp;gt;900 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A white cowboy hat with a band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Pachua the Hermit Indian|Craftable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-blackcowboyhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Black Cowboy Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(644)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -12&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 6 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1800 GP&amp;lt;br&amp;gt;900 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A black cowboy hat with shiny buckles.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Pachua the Hermit Indian|Craftable]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-monsterskullhelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Monster Skull Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(722)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +10 / M. Defense +20&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30000000 GP&amp;lt;br&amp;gt;3000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 250&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | The conserved skull of a mysterious ancient monster.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Buyable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-underworldmask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Underworld Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(5129)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -40&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Attack Range +1 / 0 Int&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 9 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 50000 GP&amp;lt;br&amp;gt;10000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 100&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Surely, you don&#039;t think I jest.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Unreleased&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-tamoshanter.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Tam O&#039; Shanter]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1173)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 9 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Itchy but it keeps you warm in Kaizei&#039;s wilderness&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Unreleased&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-redeggshellhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Red Eggshell Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(882)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Defense +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 9 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A novelty hat shaped like an eggshell half.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Easter Eggs Hunt|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-blueeggshellhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Blue Eggshell Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(883)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Defense +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 9 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A novelty hat shaped like an eggshell half.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Easter Eggs Hunt|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-yelloweggshellhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Yellow Eggshell Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(884)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Defense +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 9 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A novelty hat shaped like an eggshell half.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Easter Eggs Hunt|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-greeneggshellhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Green Eggshell Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(885)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Defense +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 9 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A novelty hat shaped like an eggshell half.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Easter Eggs Hunt|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-orangeeggshellhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Orange Eggshell Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(886)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Defense +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 9 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A novelty hat shaped like an eggshell half.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Easter Eggs Hunt|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-darkeggshellhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Dark Eggshell Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(887)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Defense +3&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 9 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A novelty hat shaped like an eggshell half.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Easter Eggs Hunt|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-pinkiehelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Pinkie Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(801)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -20&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Luck +1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20000 GP&amp;lt;br&amp;gt;1500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 800&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A helmet of Pinkie warriors.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Headless Man&#039;s Helmet|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-silkheadband.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Silk Headband]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(544)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -10&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A cool headband made of silk.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Buyable, Frequent drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-mushhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Mush Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(629)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Soft and fashionable.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Christmas 2010, Easter 2011&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-facemask.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Face Mask]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(634)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 50&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A wooden mask to conceal your face.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-bunnyears.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Bunny Ears]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1214)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 5000 GP&amp;lt;br&amp;gt;2000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A headband with plush bunny ears.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Christmas 2010, Easter 2011&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-tophat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Top Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(627)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | For the gentry of The Mana World.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Christmas 2010, Easter 2011&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-bowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(800)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Love Triangle Quest|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-redbowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Red Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2210)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a red band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-greenbowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Green Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2211)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with a green band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-darkbluebowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Dark Blue Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2212)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a dark blue band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-yellowbowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Yellow Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2213)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with a yellow band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-lightbluebowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Light Blue Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2214)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a light blue band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-pinkbowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Pink Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2215)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with a pink band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-blackbowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Black Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2216)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a black band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-orangebowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Orange Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2217)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with an orange band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-purplebowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Purple Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2218)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a purple band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-darkgreenbowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Dark Green Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2219)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with a dark green band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-redbowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Red Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2230)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a red band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-greenbowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Green Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2231)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with a green band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-darkbluebowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Dark Blue Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2232)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a dark blue band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-yellowbowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Yellow Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2233)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with a yellow band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-lightbluebowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Light Blue Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2234)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a light blue band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-pinkbowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Pink Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2235)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with a pink band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-blackbowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Black Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2236)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a black band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-orangebowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Orange Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2237)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with an orange band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-purplebowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Purple Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2238)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class, with a purple band.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-darkgreenbowlerhatbrown.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Dark Green Bowler Hat (Brown)]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(2239)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat for those with a bit of class, with a dark green band.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Selim The Dyer|Colored]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-bowlerhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Bowler Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(4030)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 10 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 2500 GP&amp;lt;br&amp;gt;1250 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A hat for those with a bit of class.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Shannon&#039;s Bowler Hat|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-eggshellhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Eggshell Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(1256)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility -1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 12 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 7000 GP&amp;lt;br&amp;gt;5000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A novelty hat shaped like an eggshell half.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2010&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-panhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Pan Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(4032)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -20&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 13 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1000 GP&amp;lt;br&amp;gt;500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 400&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A thick iron pan, big enough to cover the average head circumference of a human being.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Easter 2012&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-shroomhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Shroom Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(630)&amp;lt;/span&amp;gt; &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 13 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;1500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Evil and fashionable.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Christmas 2010, Easter 2011&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-funkyhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Funky Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(628)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 13 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;1500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Yawn...&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Christmas 2010, Easter 2011&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-christmaselfhat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Christmas Elf Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(633)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +2&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 13 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 3000 GP&amp;lt;br&amp;gt;1500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hat worn by Christmas elves.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | No longer obtainable&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;Christmas 2010, Easter 2011&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-infantryhelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Infantry Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(638)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -30&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15000 GP&amp;lt;br&amp;gt;1500 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 400&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A helmet for soldiers and guards.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Rare drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-bromenalhelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Bromenal Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(795)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -30&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15000 GP&amp;lt;br&amp;gt;1500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 400&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A hard bromenal helmet.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Unreleased&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-knightshelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Knight&#039;s Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(637)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -30&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 15 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20000 GP&amp;lt;br&amp;gt;2000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 600&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A helmet with two small wings on it.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Nicholas the Blacksmith|Craftable]], Rare drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-terranitehelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Terranite Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(766)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -12 / M. Defense +5&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 15 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30000 GP&amp;lt;br&amp;gt;3000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 300&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | A magical helmet made out of semi-polished granite that was enchanted to be very light. Great for mages on the battlefield.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[The Terranite Armor|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-candlehelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Candle Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(4020)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -25&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Agility -1 / Intelligence +1&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 16 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 20000 GP&amp;lt;br&amp;gt;2000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 450&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Worn by spelunkers.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Orum Quest|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-crusadehelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Crusade Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(639)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -36&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 18 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 25000 GP&amp;lt;br&amp;gt;2500 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 1300&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Start your own crusade.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Nicholas the Blacksmith|Craftable]], Rare drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-warlordhelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Warlord Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(636)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -36&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 18 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 30000 GP&amp;lt;br&amp;gt;3000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 900&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | Worn by great warriors.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Nicholas the Blacksmith|Craftable]], Rare drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-darkhelm.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Dark Helm]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(5128)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -80&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;+10% HP / 0 Int&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 19 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 50000 GP&amp;lt;br&amp;gt;10000 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 800&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | The Energy pulses with the power of the void.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Rare drop&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[Image:Equipment-head-bullhelmet.png]]&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | &#039;&#039;&#039;[[Bull Helmet]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(877)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack -52&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;Strength +10 / Double Damage +20% / Critical Damage +15 / Attack Speed +10% / VIT Defense -39% / Accuracy -15 / Melee only / Requires Level 90 / Strength 70+, Vitality 50+ and Luck 50+ required to activate the bonuses&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 19 &lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 90000 GP&amp;lt;br&amp;gt;60000 gp&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | 1300&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | A black steel helmet worn by the most ferocious warriors.&lt;br /&gt;
| style=&amp;quot;background:#eefaff;&amp;quot; | [[The Illia Sisters|Quest]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Image:Equipment-head-magicgmtophat.png]]&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | &#039;&#039;&#039;[[Magic GM Top Hat]]&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color:#969696;&amp;quot;&amp;gt;(888)&amp;lt;/span&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#007700;&amp;quot;&amp;gt;M. Attack +20 / M. Defense +89&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller; color:#ad1818;&amp;quot;&amp;gt;HP +31000 / Flee -200 / HP Recovery Rate -400% / Critical Defense +250&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 60 &lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 4200 GP&amp;lt;br&amp;gt;1900 gp&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | Probably not the best way to stay hidden.&lt;br /&gt;
| style=&amp;quot;background:#eeffee;&amp;quot; | [[Game Masters/Events#Kill_the_GM|GM Event]]&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller; color:#ad1818;&amp;quot;&amp;gt;GM Usage only&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Page last generated on 2015-04-21 --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[[Item Reference|&amp;lt; Item Reference]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Revolt:Quests&amp;diff=11192</id>
		<title>Revolt:Quests</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Revolt:Quests&amp;diff=11192"/>
		<updated>2008-12-26T08:38:57Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: /* Pachua the Hermit Indian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Note: experience reward limits==&lt;br /&gt;
Experience point rewards will raise the character a maximum of one level.  Rushing through these quests to level quickly without exploring the game-world isn&#039;t recommended.&lt;br /&gt;
&lt;br /&gt;
==Aiden and Ishiâ€™s monster points==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from level:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Tulimshar Town; at the market&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Aiden, heâ€™s standing at the gate across Elanore the Healer, heâ€™ll register you for this quest.&lt;br /&gt;
# Monster points are then recieved by killing monsters.&lt;br /&gt;
# Talk with Ishi to exchange these points for a random item (see list below).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* The earlier you sign up the more monster points youâ€™ll be able to exchange for items.&lt;br /&gt;
* Not all monsters give monster points.&lt;br /&gt;
* The rewards will always be the same, regardless of number of monster points you have saved up or which level your character has.&lt;br /&gt;
* The number of monster points required is raised by one with each exchange.&lt;br /&gt;
* Some of the items you get are useful in later quests, but most of the items have no use other than being sold for GP or keeping for nostalgic reasons.&lt;br /&gt;
* Currently, of all the possible items to recieve, the one you can sell to shops for most GP are the Cotton Pants (500 GP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* Blue Present Box&lt;br /&gt;
* Bug Leg (used in the [[#Vincentâ€™s action figure|Action figure quest]])&lt;br /&gt;
* Cactus Potion (heals +25 HP and +10 MP, used in the [[#Snowmanâ€™s sweet tooth|Snowman quest]])&lt;br /&gt;
* Cake (heals +15 HP)&lt;br /&gt;
* Candy (heals +5 HP, used in the [[#Snowmanâ€™s sweet tooth|Snowman quest]])&lt;br /&gt;
* Candy Cane (heals +5 HP)&lt;br /&gt;
* Casino Coins&lt;br /&gt;
* Cherry Cake (heals +35 HP)&lt;br /&gt;
* Chocolate Bar (heals +20 HP, used in the [[#Snowmanâ€™s sweet tooth|Snowman quest]])&lt;br /&gt;
* Cotton Shorts (gives +2 Defense, can be dyed)&lt;br /&gt;
* Decor Candy Cane&lt;br /&gt;
* Easter Egg (heals +100 HP)&lt;br /&gt;
* Ginger Bread Man (heals +25 HP)&lt;br /&gt;
* Maggot Slime (used in [[#Rauk the Alchemist|crafting Dark Green Dye]])&lt;br /&gt;
* Purple Present Box&lt;br /&gt;
* Red Scorpion Stinger (used in the [[#Sandraâ€™s Red Scorpion Stingers|Red Scorpion Stinger quest]])&lt;br /&gt;
* Scorpion Stinger&lt;br /&gt;
* Xmas Cake (heals +10 HP)&lt;br /&gt;
* Xmas Candy Cane (heals +10 HP)&lt;br /&gt;
&lt;br /&gt;
==Selim the Dyer==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from level:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Hurnscald; next to the south entrance&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Engage Selim in conversation and ask about how to make dyes and where to find them. He will tell you that some alchemists can make them from ingredients.&lt;br /&gt;
# Go to Rauk (Central Woodlands) and ask him about dyes. After conversing with him he will tell you that he can make them with the the right ingredients. See the [[#Rauk the Alchemist|section on Rauk]] for more information.&lt;br /&gt;
# Then return to Selim with the dyes to dye the clothes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tips&#039;&#039;&#039;&lt;br /&gt;
* Clothes already dyed need to be bleached (see the [[#Candide the Bleacher|Bleacher quest]]) before they can be dyed again.&lt;br /&gt;
* The following clothes are dyeable at the moment:&lt;br /&gt;
** Cotton Shirts&lt;br /&gt;
** Cotton Shorts&lt;br /&gt;
** Cotton Skirts&lt;br /&gt;
** Short Tank Tops&lt;br /&gt;
** Silk Robes&lt;br /&gt;
** Tank Tops&lt;br /&gt;
** Turtleneck Sweaters&lt;br /&gt;
** V-Necked Sweaters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* A dyed garment&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* Dye (of appropriate colour)&lt;br /&gt;
&lt;br /&gt;
==Vincentâ€™s action figure==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; 1â€“5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Tulimshar Town; in the eastern parts&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Vincent, he needs 30 Bug Legs so he can make an action figure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* Bug Legs can also be gotten from [[#Aiden and Ishiâ€™s monster points|monster points]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bug Legs dropped by:&#039;&#039;&#039; Maggots (4%), Scorpions (7%), Bats (4%), Spiky Mushrooms (0.5%), Fire Goblins (8%), Giant Maggots (7.5%), Red Scorpions (5%) and Black Scorpions (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1,000 GP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 30 Bug Legs&lt;br /&gt;
&lt;br /&gt;
==Candide the Bleacher==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; 5â€“10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Tulimshar Town; left to Neko in the marketplace&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Candide and he will tell you about his discovery where he found out how to bleach clothes using the volcanoâ€™s ash.&lt;br /&gt;
# He will bleach a cloth for a cost of 5,000 GP and 5 Piles of Ash.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
* You can only bleach the dyeable clothes (see list in the [[#Selim the Dyer|Dyer quest]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Piles of Ash dropped by&#039;&#039;&#039;&lt;br /&gt;
* Fire Goblins (5%)&lt;br /&gt;
&lt;br /&gt;
==Farmerâ€™s Scythe==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Woodland around Hurnscald; just north of Hurnscald&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Hinnak to find out that the Pinkies are eating his crops.&lt;br /&gt;
# He wants you to get rid of some Pinkies and promise you a reward, a Scythe.&lt;br /&gt;
# Bring him 10 Pink Antennae as proof of your kills and the reward is yours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* There is a larger amount of Pinkies in the Ice Cave below Snow Town than on the map where you find the Farmer.&lt;br /&gt;
* If you want to know if youâ€™ll be able to kill the Pinkies, consider that they have more HP than Fire Goblins, but deal less Damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pink Antennae dropped by:&#039;&#039;&#039; Pinkies (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Scythe (+75 Damage, can only be gotten from this quest)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 10 Pink Antennae&lt;br /&gt;
&lt;br /&gt;
==Sandraâ€™s Red Scorpion Stingers==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Tulimshar Town; outside the walls of the market, the south-east corner&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Sandra, she wants you to bring her 5 Red Scorpion Stingers&#039;&#039; to prove that you killed them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* Red Scorpions require some Dexterity in order for you to be able to hit them, so depending on your characterâ€™s stats, it might take a while before you can do this quest.&lt;br /&gt;
* Red Scorpion Stingers can also be gotten from [[#Aiden and Ishiâ€™s monster points|monster points]]. This makes it possible to complete this quest even at low character levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Red Scorpion Stingers dropped by:&#039;&#039;&#039; Red Scorpions (20%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rewards&#039;&#039;&#039;&lt;br /&gt;
* 1 Bow (+15 Damage, can also be bought in Hurnscald for 1,000 GP)&lt;br /&gt;
* 100 Arrows (can also be bought in shops for 3 GP each)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 5 Red Scorpion Stingers&lt;br /&gt;
&lt;br /&gt;
==Bow Masterâ€™s Forest Bow==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Hurnscald; in the bow shop&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk with the Bow Master to see if he can make you a Forest Bow.&lt;br /&gt;
# Go talk with Jack the Lumberjack, after running back and forth a while between them youâ€™ll find out that you have to supply the wood, and pay a fee of 10,000 GP.&lt;br /&gt;
# The tricky part is finding a Raw Log that is good enough. Before you pay, the Bow Master will test out your log to see if itâ€™s strong enough. Whether or not a log breaks is random.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* You can find Log Heads in the South-West Woodlands.&lt;br /&gt;
* The chance of a Raw Log not breaking is 1 in 20.&lt;br /&gt;
* Do not sell remaining logs, as they can be useful for you for [[#Obtaining a Wooden shield|shield]] quest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Raw Logs dropped by:&#039;&#039;&#039; Log Heads (20%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Forest Bow (+65 Damage, can also be bought for 20.000 GP in shops)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* About 20 Raw Logs&lt;br /&gt;
* 10,000 GP&lt;br /&gt;
&lt;br /&gt;
==Dougâ€™s Cave Snake Lamps==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; South Woodland; on the third level of Dimondâ€™s Cove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Doug needs 40 Cave Snake Lamps to light up the rooms at the inn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* Cave Snakes have a low probability (0.4%) of dropping Jeans Shorts (+4 Defense).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snake Lamps dropped by:&#039;&#039;&#039; Cave Snakes (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 2,000 GP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 40 Cave Snake Lamps&lt;br /&gt;
&lt;br /&gt;
==Snowmanâ€™s Sweet Tooth==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Snow Fields; at the center&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# The Snowman would like you to get him 10 Chocolate Bars, 5 Cactus Potions and 15 Candies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* Chocolate Bars, Cactus Potions and Candies can also be gotten from [[#Aiden and Ishiâ€™s monster points|monster points]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chocolate Bar dropped by:&#039;&#039;&#039; Scorpions (0.5%), Rudolph Slimes (3%), Red Slimes (1.1%), Red Scorpions (1%) and Black Scorpions (1%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Candies dropped by:&#039;&#039;&#039; Scorpions (1%) and Rudolph Slimes (6%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cactus Potions dropped by:&#039;&#039;&#039; Maggots (1.5%), Bats (1.5%), Spiky Mushrooms (1.5%), Fire Goblins (1.5%), Green Slimes (1%), Yellow Slimes (3.5%) and Giant Maggots (50%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Santa Hat (+2 Defense, can only be gotten from this quest)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 5 Cactus Potions&lt;br /&gt;
* 15 Candies&lt;br /&gt;
* 10 Chocolate Bars&lt;br /&gt;
&lt;br /&gt;
==Agostine the Tailor==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Snow Town; at the inn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Agostine, bring him 1 Iron Potion and heâ€™ll give you 500 GP as a reward.&lt;br /&gt;
# The Tailor will now offer to make some fashionable Winter Gloves, and for that he will need some White Fur.&lt;br /&gt;
# Collect furs until he accepts the quality and you are given your gloves for a fee of 15,000 GP.&lt;br /&gt;
# He will now offer to make a pair of matching Fur Boots, in the same manner as above. You&#039;ll need a pair of Boots in addition to the furs and the 15,000 GP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* You can buy &#039;&#039;Iron potions&#039;&#039; in the house just south of the inn.&lt;br /&gt;
* There is a 1 in 30 chance that Agostine will accept the White Fur for both the Winter Gloves and the Fur Boots.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;White Fur dropped by&#039;&#039;&#039;&lt;br /&gt;
* Fluffies (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boots dropped by&#039;&#039;&#039;&lt;br /&gt;
* Red Slimes (2.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rewards&#039;&#039;&#039;&lt;br /&gt;
# 500 GP&lt;br /&gt;
# 1 Winter Gloves (+2 Defense, can only be gotten from this quest)&lt;br /&gt;
# 1 Fur Boots (+3 Defense, can only be gotten from this quest)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 1 Iron Potion&lt;br /&gt;
* About 60 White Furs&lt;br /&gt;
* 1 Boots&lt;br /&gt;
* 29,500 GP&lt;br /&gt;
&lt;br /&gt;
==Lora Tay the Legendary Seamstress==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; font-size:80%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| New clothes&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Short Tank Top (+2 Defense)&lt;br /&gt;
| 5 Cotton Clothes&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Tank Top (+2 Defense)&lt;br /&gt;
| 6 Cotton Clothes&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cropped clothes&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Short Tank Top (+2 Defense)&lt;br /&gt;
| 1 Tank Top&lt;br /&gt;
| 100 GP&lt;br /&gt;
|-&lt;br /&gt;
| Tank Top (+2 Defense)&lt;br /&gt;
| 1 Cotton Shirt&lt;br /&gt;
| 100 GP&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Lengthened clothes&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Cotton Shirt (+2 Defense)&lt;br /&gt;
| 1 Cotton Cloth&amp;lt;br/&amp;gt;1 Tank Top&lt;br /&gt;
| 500 GP&lt;br /&gt;
|-&lt;br /&gt;
| Tank Top (+2 Defense)&lt;br /&gt;
| 1 Cotton Cloth&amp;lt;br/&amp;gt;1 Short Tank Top&lt;br /&gt;
| 500 GP&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
* The [[#Agostine the Taylor|Agostine quest]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; South Woodland; third floor of Dimondâ€™s Cove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Lora Tay a bit until you get to the part where she starts coughing.&lt;br /&gt;
# Stop her coughing by bringing her a Bottle of Water.&lt;br /&gt;
# Engage her in conversation again and repeat what you said before. Now give her the water and she will thank you.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* If she tells you to get out, just talk to her again and pick different conversation topics.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bottle of Water dropped by&#039;&#039;&#039;&lt;br /&gt;
* Mouboos (7.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 1 Bottle of Water&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* Lora Tay will henceforth craft or adjust some clothes, see below.&lt;br /&gt;
* 50,000 exp.&lt;br /&gt;
&lt;br /&gt;
===Clothes sewing===&lt;br /&gt;
If you have completed the above quest, Lora will be able to craft new clothes or adjust the size of them. Note that cropping and lengthening works on both undyed and dyed clothes. She only crafts undyed clothes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cotton Clothes dropped by&#039;&#039;&#039;&lt;br /&gt;
* Mouboos (2% + 1% + 0.1%)&lt;br /&gt;
&lt;br /&gt;
== Nicholas the Blacksmith==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; font-size:80%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Helmets&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Crusader Helmet (+18 Defense)&lt;br /&gt;
| 10 Iron Ores&lt;br /&gt;
| 10,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Knightâ€™s Helmet (+15 Defense)&lt;br /&gt;
| 5 Iron Ores&lt;br /&gt;
| 10,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Warlord Helmet (+18 Defense)&lt;br /&gt;
| 15 Iron Ores&lt;br /&gt;
| 10,000 GP&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Shields&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Steel Shield (+20 Defense)&lt;br /&gt;
| 2 Infantry Helmets&amp;lt;br /&amp;gt;10 Iron Ores&amp;lt;br /&amp;gt;1 Leather Patch&lt;br /&gt;
| 20,000 GP&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Hurnscald; the blacksmithâ€™s shop&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* Yellow Slimes are found on the second level of the Desert Mines and in the Cave beneath Hurnscald.&lt;br /&gt;
* Beware the aggressive Spiders (in the Desert Mines), they attack you on sight.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Infantry Helmets dropped by:&#039;&#039;&#039; Snakes (0.2%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Iron Ores dropped by:&#039;&#039;&#039; Yellow Slimes (1.5%)&lt;br /&gt;
&lt;br /&gt;
==Treasure Chest==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Desert Mines; at the end of the tunnel on the second level&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# â€œTalkâ€ to the Treasure Chest.&lt;br /&gt;
# Open with 3 Treasure Keys.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* Treasure Keys do currently have no other use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keys dropped by:&#039;&#039;&#039; Spiders (5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Short Sword (+100 Damage, can only be gotten from this quest)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 3 Treasure Keys&lt;br /&gt;
&lt;br /&gt;
==Rauk the Alchemist==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; font-size:80%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Potions&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Concentration Potion&lt;br /&gt;
| 20 Petals&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
| Iron Potion&lt;br /&gt;
| 20 Small Mushrooms&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Dyes&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Black Dye&lt;br /&gt;
| 40 Alizarin Herbs&amp;lt;br/&amp;gt;40 Cobalt Herbs&amp;lt;br/&amp;gt;40 Gamboge Herbs&amp;lt;br/&amp;gt;40 Mauve Herbs&lt;br /&gt;
| 20,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Dark Blue Dye&lt;br /&gt;
| 100 Cobalt Herbs&amp;lt;br/&amp;gt;50 Mauve Herbs&amp;lt;br/&amp;gt;1 Pearl&lt;br /&gt;
| 10,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Dark Green Dye&lt;br /&gt;
| 10 Cobalt Herbs&amp;lt;br/&amp;gt;10 Gamboge Herbs&amp;lt;br/&amp;gt;1 Maggot Slime&amp;lt;br/&amp;gt;10 Mauve Herbs&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
| Green Dye&lt;br /&gt;
| 20 Cobalt Herbs&amp;lt;br/&amp;gt;20 Gamboge Herbs&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Light Blue Dye&lt;br /&gt;
| 10 Cobalt Herbs&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
| Orange Dye&lt;br /&gt;
| 10 Alizarin Herbs&amp;lt;br/&amp;gt;10 Gamboge Herbs&amp;lt;br/&amp;gt;2 Iron Ores&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Pink Dye&lt;br /&gt;
| 10 Alizarin Herbs&amp;lt;br/&amp;gt;6 Petals&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Purple Dye&lt;br /&gt;
| 100 Alizarin Herbs&amp;lt;br/&amp;gt;100 Cobalt Herbs&amp;lt;br/&amp;gt;20 Mauve Herbs&amp;lt;br/&amp;gt;1 Pearl&lt;br /&gt;
| 40,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Red Dye&lt;br /&gt;
| 10 Alizarin Herbs&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
| Yellow Dye&lt;br /&gt;
| 10 Gamboge Herbs&lt;br /&gt;
| 0 GP&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Central Woodlands; West of Hurnscald&lt;br /&gt;
&lt;br /&gt;
===Potion making===&lt;br /&gt;
These crafting options are available from the beginning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* If you want gold, you are better off selling the Small Mushrooms and Petals than the ready potions; you will get 500 GP for the needed ingredients while only 250 GP each potion.&lt;br /&gt;
* These potions are also found as drops.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Concentration Potions dropped by&#039;&#039;&#039;&lt;br /&gt;
* Sea Slimes (1%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Iron Potions dropped by&#039;&#039;&#039;&lt;br /&gt;
* Spiky Mushrooms (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Petals dropped by&#039;&#039;&#039;&lt;br /&gt;
* Flowers (5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small Mushrooms dropped by&#039;&#039;&#039;&lt;br /&gt;
* Evil Mushrooms (5%)&lt;br /&gt;
&lt;br /&gt;
===Dye making===&lt;br /&gt;
These crafting options are only available once the player is initiated in the [[#Selim the Dyer|Dyer quest]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tips&#039;&#039;&#039;&lt;br /&gt;
* Most Woodland maps have the plants, but the Southernmost Woodlands (Cobalt and Mauve Plants) and the South-West Woodlands (Alizarin and Gamboge Plants) contain the most.&lt;br /&gt;
* Target the nearest enemy (the A-button by default) while walking around to easier find the plants.&lt;br /&gt;
* To gather these plants, attack them like you would any other monster.&lt;br /&gt;
* Pearls can be found at the Beach west of Tulimshar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alizarin Herbs dropped by&#039;&#039;&#039;&lt;br /&gt;
* Alizarin Plants (3 Ã— 30%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cobalt Herbs dropped by&#039;&#039;&#039;&lt;br /&gt;
* Cobalt Plants (3 Ã— 30%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gamboge Herbs dropped by&#039;&#039;&#039;&lt;br /&gt;
* Gamboge Plants (3 Ã— 30%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Iron Ores dropped by&#039;&#039;&#039;&lt;br /&gt;
* Yellow Slimes (1.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maggot Slimes dropped by&#039;&#039;&#039;&lt;br /&gt;
* Maggots (8%)&lt;br /&gt;
* Fire Goblins (8%)&lt;br /&gt;
* Bats (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mauve Herbs dropped by&#039;&#039;&#039;&lt;br /&gt;
* Mauve Plants (3 Ã— 30%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pearls dropped by&#039;&#039;&#039;&lt;br /&gt;
* Sea Slimes (0.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Petals dropped by&#039;&#039;&#039;&lt;br /&gt;
* Flowers (5%)&lt;br /&gt;
&lt;br /&gt;
==Pachua the Hermit Indian==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; font-size:80%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Leather works&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Cowboy Hat (+6 Defense)&lt;br /&gt;
| 1 Fancy Hat&amp;lt;br/&amp;gt;2 Snake Skins&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Jeans Chaps (+6 Defense)&lt;br /&gt;
| 1 Jeans Shorts&amp;lt;br/&amp;gt;10 Snake Skins&lt;br /&gt;
| 10,000 GP&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; 55â€“65&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Desert Mountains; at the south-west end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tips&#039;&#039;&#039;&lt;br /&gt;
* To find Pachua: The road of the map forks in only three places. Take the eastern route at the first fork, which is in the second cave. The next fork is in the fourth cave, you want to go south. Then the third fork is in the fifth cave, west is the way towards the Hermit. In short: east, south, west.&lt;br /&gt;
* There is also a magic note flying around in the Magic House in the North-East Woodlands that will bring you directly to Pachua.&lt;br /&gt;
&lt;br /&gt;
===Leather working===&lt;br /&gt;
These crafting options are available from the beginning. Note that it is random whether you get a White Cowboy Hat or a Black Cowbay Hat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snake Skins dropped by&#039;&#039;&#039;&lt;br /&gt;
* Mountain Snakes (1.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Jeans Shorts dropped by&#039;&#039;&#039;&lt;br /&gt;
* Cave Snakes (0.4%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fancy Hats dropped by&#039;&#039;&#039;&lt;br /&gt;
* Snakes (3%)&lt;br /&gt;
&lt;br /&gt;
==Obtaining a Wooden Shield==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Hurnscald; Jack the Lumberjack&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk with Jack, he will ask you about your bow. And offer to make a shield for you.&lt;br /&gt;
# He want you to collect 40 Raw Logs for this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* You can find Log Heads in the South-West Woodlands.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Raw Logs dropped by:&#039;&#039;&#039; Log Heads (20%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Wooden Shield (+14 Defense)&lt;br /&gt;
* 2,500 Exp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 40 Raw Logs&lt;br /&gt;
* 5,000 GP&lt;br /&gt;
&lt;br /&gt;
==Robberies in Hurnscald==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Hurnscald; Inspector&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: Agree to help solve robberies.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Old women&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, west.&lt;br /&gt;
#: Ask about robberies. She will tell you that she saw something, but would only tell Inspector himself.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will tell you that he doesn&#039;t belive her eyesight.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Old women with dyed clothes&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, west.&lt;br /&gt;
#: Dye some torso-worn and legs-worn clothes &#039;&#039;dark blue&#039;&#039;, put it on, then talk to the women. Keep the clothes after that.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Troupe Leader&#039;&#039;&#039;&lt;br /&gt;
#: Position: Tulimshar, Inn.&lt;br /&gt;
#: Talk to her, she will tell you that a mask was stolen in Hurnscald. Ask if she has any idea who might it been. She will tell you that a old man hang near theater after the show.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will ask you if you can interrogate Old man for him.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Old Man&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, east.&lt;br /&gt;
#: Ask him about hanging near the theater after the show. Hi will tell you that he was an actor when he was younger, but he wasn&#039;t there that night.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will ask you to verify his alibi with his wife, the Old women.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Old women&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, west.&lt;br /&gt;
#: She will confirm that.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will tell you that he don&#039;t know where to look, and ask you to talk to everybody again.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Old women&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, west.&lt;br /&gt;
#: Talk with her in dyed clothes. He will remember that she saw someone took large satchel and headed north.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Miner&#039;&#039;&#039;&lt;br /&gt;
#: Position: North of Hurnscald, mining camp, top level.&lt;br /&gt;
#: He will confirm that he heard the commotion and somebody got down to the basement, but nobody was there.&lt;br /&gt;
# &#039;&#039;&#039;Search bookcase&#039;&#039;&#039;&lt;br /&gt;
#: Position: North of Hurnscald, mining camp, basement, north west corner (needs to be step on).&lt;br /&gt;
#: You will find a upside down book, hollowed out with mask and note which you can&#039;t read.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will take care of that note and send you to the troupe leader again.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Troupe Leader&#039;&#039;&#039;&lt;br /&gt;
#: Position: Tulimshar, Inn&lt;br /&gt;
#: Reward: 1500 exp, Noh Mask.&lt;br /&gt;
#: She will thank you for a good job, and let you keep the mask.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: Reward: 2500 exp.&lt;br /&gt;
#: He will tell you that they found all of the stolen items in the mining camp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* Mauve and Cobalt plants can be found in the South Woodlands.&lt;br /&gt;
* Pearls are dropped by Sea Slimes west of Tulimshar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Noh Mask (+3 Defense)&lt;br /&gt;
* 4,000 Exp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 200 Cobalt Herbs&lt;br /&gt;
* 100 Mauve Herbs&lt;br /&gt;
* 2 Pearls&lt;br /&gt;
* Cotton body-worn clothes&lt;br /&gt;
* Cotton leg-worn clothes&lt;br /&gt;
* 20,000 GP&lt;br /&gt;
&lt;br /&gt;
==Santa&#039;s Stolen Presents==&lt;br /&gt;
&amp;lt;!--I&#039;m not sure of the official name of this quest, if there is any at all. -Hoogli--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Snow Fields&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; no, only 1 time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from level:&#039;&#039;&#039; 50 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do:&#039;&#039;&#039;&lt;br /&gt;
# Santa needs 25 Purple Present Boxes, 20 Blue Present Boxes, and 5 Green Present Boxes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Purple Present Box dropped by:&#039;&#039;&#039; Rudolph Slimes (8%)&lt;br /&gt;
*&#039;&#039;&#039;Blue Present Box dropped by:&#039;&#039;&#039; Rudolph Slimes (5%)&lt;br /&gt;
*&#039;&#039;&#039;Green Present Box dropped by:&#039;&#039;&#039; Santa Slimes (5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints:&#039;&#039;&#039;&lt;br /&gt;
*If you attack a Santa Slime, his &amp;quot;reindeer&amp;quot; will join him in attacking you. Even though they die when you kill the Santa Slime, you neither get experience nor items from the Reindeer Slimes unless you kill them directly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
* 1 Winter gloves (+3% Defense) OR&lt;br /&gt;
* 1 Turtleneck sweater (+6% Defense)&lt;br /&gt;
&lt;br /&gt;
==Red Mask Quest==&lt;br /&gt;
&amp;lt;!--I&#039;m not sure of the official name of this quest also, if there is any at all. -libra69de--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Inside the new mine north of Hurnscald&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; no, only 1 time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from level:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do:&#039;&#039;&#039;&lt;br /&gt;
#Read about the ritual in the bookcase inside the cave&lt;br /&gt;
#You need to collect many objects to make a ritual and open a chest &lt;br /&gt;
#* 1 maggot slime&lt;br /&gt;
#* 1 petal (from Flower)&lt;br /&gt;
#* 1 mushroom (from Evil Mushrooms)&lt;br /&gt;
#* 1 pearl (from Sea Slime)&lt;br /&gt;
#* 1 hard spike (from Spiky Mushroom)&lt;br /&gt;
#* 1 raw log (from Log Head)&lt;br /&gt;
#* 1 pink antennae (from pinkie)&lt;br /&gt;
#* 1 snake tongue from a Snake&lt;br /&gt;
#* 1 snake tongue from a Mountain snake&lt;br /&gt;
#* 1 snake tongue from a Cave snake&lt;br /&gt;
#* 1 snake tongue from a Grass snake&lt;br /&gt;
#* 1 key (from spiders)&lt;br /&gt;
#* 1 pile of ash (from Fire Goblin)&lt;br /&gt;
#* 1 Gamboge Herb&lt;br /&gt;
#* 1 Mauve Herb&lt;br /&gt;
#* 1 Cobalt Herb&lt;br /&gt;
#* 1 Alizarin Herb&lt;br /&gt;
#* 1 bug leg&lt;br /&gt;
#* 1 cave snake lamp&lt;br /&gt;
#* 1 iron ore&lt;br /&gt;
#* 1 Scorpion stinger&lt;br /&gt;
#* 1 Red Scorpion stinger&lt;br /&gt;
#* 1 Black Scorpion stinger&lt;br /&gt;
#* 1 piece of Cotton Cloth (from MouBoo)&lt;br /&gt;
#* 1 White Fur&lt;br /&gt;
#* 1 Silkworm&#039;s Cocoon (from Silkworm)&lt;br /&gt;
#* 1 Dark Crystal (from Skulls)&lt;br /&gt;
#* 1 Bottle of Water (from MouBoo) &lt;br /&gt;
#You need to open the barrier, that block access to the chest&lt;br /&gt;
#* Just find a Jack0 monster and kill it. You will recevive the &amp;quot;Soul of the Jack O&amp;quot;. Now you can pass the barrier and find the chest in the next room&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints:&#039;&#039;&#039;&lt;br /&gt;
* Jack0s usually appear in a garden full of brown trees on its the left part. You can reach it from the cave north from Hurnscald&lt;br /&gt;
* It&#039;s a long quest, maybe you prefere to trade some object with other players&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
* 1 Demon Mask(+3% Defense)&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Revolt:Quests&amp;diff=11191</id>
		<title>Revolt:Quests</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Revolt:Quests&amp;diff=11191"/>
		<updated>2008-12-26T08:38:13Z</updated>

		<summary type="html">&lt;p&gt;Tomminator: /* Red Mask Quest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Note: experience reward limits==&lt;br /&gt;
Experience point rewards will raise the character a maximum of one level.  Rushing through these quests to level quickly without exploring the game-world isn&#039;t recommended.&lt;br /&gt;
&lt;br /&gt;
==Aiden and Ishiâ€™s monster points==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from level:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Tulimshar Town; at the market&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Aiden, heâ€™s standing at the gate across Elanore the Healer, heâ€™ll register you for this quest.&lt;br /&gt;
# Monster points are then recieved by killing monsters.&lt;br /&gt;
# Talk with Ishi to exchange these points for a random item (see list below).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* The earlier you sign up the more monster points youâ€™ll be able to exchange for items.&lt;br /&gt;
* Not all monsters give monster points.&lt;br /&gt;
* The rewards will always be the same, regardless of number of monster points you have saved up or which level your character has.&lt;br /&gt;
* The number of monster points required is raised by one with each exchange.&lt;br /&gt;
* Some of the items you get are useful in later quests, but most of the items have no use other than being sold for GP or keeping for nostalgic reasons.&lt;br /&gt;
* Currently, of all the possible items to recieve, the one you can sell to shops for most GP are the Cotton Pants (500 GP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* Blue Present Box&lt;br /&gt;
* Bug Leg (used in the [[#Vincentâ€™s action figure|Action figure quest]])&lt;br /&gt;
* Cactus Potion (heals +25 HP and +10 MP, used in the [[#Snowmanâ€™s sweet tooth|Snowman quest]])&lt;br /&gt;
* Cake (heals +15 HP)&lt;br /&gt;
* Candy (heals +5 HP, used in the [[#Snowmanâ€™s sweet tooth|Snowman quest]])&lt;br /&gt;
* Candy Cane (heals +5 HP)&lt;br /&gt;
* Casino Coins&lt;br /&gt;
* Cherry Cake (heals +35 HP)&lt;br /&gt;
* Chocolate Bar (heals +20 HP, used in the [[#Snowmanâ€™s sweet tooth|Snowman quest]])&lt;br /&gt;
* Cotton Shorts (gives +2 Defense, can be dyed)&lt;br /&gt;
* Decor Candy Cane&lt;br /&gt;
* Easter Egg (heals +100 HP)&lt;br /&gt;
* Ginger Bread Man (heals +25 HP)&lt;br /&gt;
* Maggot Slime (used in [[#Rauk the Alchemist|crafting Dark Green Dye]])&lt;br /&gt;
* Purple Present Box&lt;br /&gt;
* Red Scorpion Stinger (used in the [[#Sandraâ€™s Red Scorpion Stingers|Red Scorpion Stinger quest]])&lt;br /&gt;
* Scorpion Stinger&lt;br /&gt;
* Xmas Cake (heals +10 HP)&lt;br /&gt;
* Xmas Candy Cane (heals +10 HP)&lt;br /&gt;
&lt;br /&gt;
==Selim the Dyer==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from level:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Hurnscald; next to the south entrance&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Engage Selim in conversation and ask about how to make dyes and where to find them. He will tell you that some alchemists can make them from ingredients.&lt;br /&gt;
# Go to Rauk (Central Woodlands) and ask him about dyes. After conversing with him he will tell you that he can make them with the the right ingredients. See the [[#Rauk the Alchemist|section on Rauk]] for more information.&lt;br /&gt;
# Then return to Selim with the dyes to dye the clothes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tips&#039;&#039;&#039;&lt;br /&gt;
* Clothes already dyed need to be bleached (see the [[#Candide the Bleacher|Bleacher quest]]) before they can be dyed again.&lt;br /&gt;
* The following clothes are dyeable at the moment:&lt;br /&gt;
** Cotton Shirts&lt;br /&gt;
** Cotton Shorts&lt;br /&gt;
** Cotton Skirts&lt;br /&gt;
** Short Tank Tops&lt;br /&gt;
** Silk Robes&lt;br /&gt;
** Tank Tops&lt;br /&gt;
** Turtleneck Sweaters&lt;br /&gt;
** V-Necked Sweaters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* A dyed garment&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* Dye (of appropriate colour)&lt;br /&gt;
&lt;br /&gt;
==Vincentâ€™s action figure==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; 1â€“5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Tulimshar Town; in the eastern parts&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Vincent, he needs 30 Bug Legs so he can make an action figure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* Bug Legs can also be gotten from [[#Aiden and Ishiâ€™s monster points|monster points]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bug Legs dropped by:&#039;&#039;&#039; Maggots (4%), Scorpions (7%), Bats (4%), Spiky Mushrooms (0.5%), Fire Goblins (8%), Giant Maggots (7.5%), Red Scorpions (5%) and Black Scorpions (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1,000 GP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 30 Bug Legs&lt;br /&gt;
&lt;br /&gt;
==Candide the Bleacher==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; 5â€“10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Tulimshar Town; left to Neko in the marketplace&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Candide and he will tell you about his discovery where he found out how to bleach clothes using the volcanoâ€™s ash.&lt;br /&gt;
# He will bleach a cloth for a cost of 5,000 GP and 5 Piles of Ash.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
* You can only bleach the dyeable clothes (see list in the [[#Selim the Dyer|Dyer quest]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Piles of Ash dropped by&#039;&#039;&#039;&lt;br /&gt;
* Fire Goblins (5%)&lt;br /&gt;
&lt;br /&gt;
==Farmerâ€™s Scythe==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Woodland around Hurnscald; just north of Hurnscald&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Hinnak to find out that the Pinkies are eating his crops.&lt;br /&gt;
# He wants you to get rid of some Pinkies and promise you a reward, a Scythe.&lt;br /&gt;
# Bring him 10 Pink Antennae as proof of your kills and the reward is yours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* There is a larger amount of Pinkies in the Ice Cave below Snow Town than on the map where you find the Farmer.&lt;br /&gt;
* If you want to know if youâ€™ll be able to kill the Pinkies, consider that they have more HP than Fire Goblins, but deal less Damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pink Antennae dropped by:&#039;&#039;&#039; Pinkies (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Scythe (+75 Damage, can only be gotten from this quest)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 10 Pink Antennae&lt;br /&gt;
&lt;br /&gt;
==Sandraâ€™s Red Scorpion Stingers==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Tulimshar Town; outside the walls of the market, the south-east corner&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Sandra, she wants you to bring her 5 Red Scorpion Stingers&#039;&#039; to prove that you killed them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* Red Scorpions require some Dexterity in order for you to be able to hit them, so depending on your characterâ€™s stats, it might take a while before you can do this quest.&lt;br /&gt;
* Red Scorpion Stingers can also be gotten from [[#Aiden and Ishiâ€™s monster points|monster points]]. This makes it possible to complete this quest even at low character levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Red Scorpion Stingers dropped by:&#039;&#039;&#039; Red Scorpions (20%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rewards&#039;&#039;&#039;&lt;br /&gt;
* 1 Bow (+15 Damage, can also be bought in Hurnscald for 1,000 GP)&lt;br /&gt;
* 100 Arrows (can also be bought in shops for 3 GP each)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 5 Red Scorpion Stingers&lt;br /&gt;
&lt;br /&gt;
==Bow Masterâ€™s Forest Bow==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Hurnscald; in the bow shop&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk with the Bow Master to see if he can make you a Forest Bow.&lt;br /&gt;
# Go talk with Jack the Lumberjack, after running back and forth a while between them youâ€™ll find out that you have to supply the wood, and pay a fee of 10,000 GP.&lt;br /&gt;
# The tricky part is finding a Raw Log that is good enough. Before you pay, the Bow Master will test out your log to see if itâ€™s strong enough. Whether or not a log breaks is random.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* You can find Log Heads in the South-West Woodlands.&lt;br /&gt;
* The chance of a Raw Log not breaking is 1 in 20.&lt;br /&gt;
* Do not sell remaining logs, as they can be useful for you for [[#Obtaining a Wooden shield|shield]] quest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Raw Logs dropped by:&#039;&#039;&#039; Log Heads (20%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Forest Bow (+65 Damage, can also be bought for 20.000 GP in shops)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* About 20 Raw Logs&lt;br /&gt;
* 10,000 GP&lt;br /&gt;
&lt;br /&gt;
==Dougâ€™s Cave Snake Lamps==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; South Woodland; on the third level of Dimondâ€™s Cove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Doug needs 40 Cave Snake Lamps to light up the rooms at the inn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* Cave Snakes have a low probability (0.4%) of dropping Jeans Shorts (+4 Defense).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snake Lamps dropped by:&#039;&#039;&#039; Cave Snakes (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 2,000 GP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 40 Cave Snake Lamps&lt;br /&gt;
&lt;br /&gt;
==Snowmanâ€™s Sweet Tooth==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Snow Fields; at the center&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# The Snowman would like you to get him 10 Chocolate Bars, 5 Cactus Potions and 15 Candies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* Chocolate Bars, Cactus Potions and Candies can also be gotten from [[#Aiden and Ishiâ€™s monster points|monster points]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chocolate Bar dropped by:&#039;&#039;&#039; Scorpions (0.5%), Rudolph Slimes (3%), Red Slimes (1.1%), Red Scorpions (1%) and Black Scorpions (1%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Candies dropped by:&#039;&#039;&#039; Scorpions (1%) and Rudolph Slimes (6%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cactus Potions dropped by:&#039;&#039;&#039; Maggots (1.5%), Bats (1.5%), Spiky Mushrooms (1.5%), Fire Goblins (1.5%), Green Slimes (1%), Yellow Slimes (3.5%) and Giant Maggots (50%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Santa Hat (+2 Defense, can only be gotten from this quest)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 5 Cactus Potions&lt;br /&gt;
* 15 Candies&lt;br /&gt;
* 10 Chocolate Bars&lt;br /&gt;
&lt;br /&gt;
==Agostine the Tailor==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Snow Town; at the inn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Agostine, bring him 1 Iron Potion and heâ€™ll give you 500 GP as a reward.&lt;br /&gt;
# The Tailor will now offer to make some fashionable Winter Gloves, and for that he will need some White Fur.&lt;br /&gt;
# Collect furs until he accepts the quality and you are given your gloves for a fee of 15,000 GP.&lt;br /&gt;
# He will now offer to make a pair of matching Fur Boots, in the same manner as above. You&#039;ll need a pair of Boots in addition to the furs and the 15,000 GP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* You can buy &#039;&#039;Iron potions&#039;&#039; in the house just south of the inn.&lt;br /&gt;
* There is a 1 in 30 chance that Agostine will accept the White Fur for both the Winter Gloves and the Fur Boots.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;White Fur dropped by&#039;&#039;&#039;&lt;br /&gt;
* Fluffies (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boots dropped by&#039;&#039;&#039;&lt;br /&gt;
* Red Slimes (2.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rewards&#039;&#039;&#039;&lt;br /&gt;
# 500 GP&lt;br /&gt;
# 1 Winter Gloves (+2 Defense, can only be gotten from this quest)&lt;br /&gt;
# 1 Fur Boots (+3 Defense, can only be gotten from this quest)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 1 Iron Potion&lt;br /&gt;
* About 60 White Furs&lt;br /&gt;
* 1 Boots&lt;br /&gt;
* 29,500 GP&lt;br /&gt;
&lt;br /&gt;
==Lora Tay the Legendary Seamstress==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; font-size:80%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| New clothes&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Short Tank Top (+2 Defense)&lt;br /&gt;
| 5 Cotton Clothes&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Tank Top (+2 Defense)&lt;br /&gt;
| 6 Cotton Clothes&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cropped clothes&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Short Tank Top (+2 Defense)&lt;br /&gt;
| 1 Tank Top&lt;br /&gt;
| 100 GP&lt;br /&gt;
|-&lt;br /&gt;
| Tank Top (+2 Defense)&lt;br /&gt;
| 1 Cotton Shirt&lt;br /&gt;
| 100 GP&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Lengthened clothes&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Cotton Shirt (+2 Defense)&lt;br /&gt;
| 1 Cotton Cloth&amp;lt;br/&amp;gt;1 Tank Top&lt;br /&gt;
| 500 GP&lt;br /&gt;
|-&lt;br /&gt;
| Tank Top (+2 Defense)&lt;br /&gt;
| 1 Cotton Cloth&amp;lt;br/&amp;gt;1 Short Tank Top&lt;br /&gt;
| 500 GP&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039;&lt;br /&gt;
* The [[#Agostine the Taylor|Agostine quest]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; South Woodland; third floor of Dimondâ€™s Cove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk to Lora Tay a bit until you get to the part where she starts coughing.&lt;br /&gt;
# Stop her coughing by bringing her a Bottle of Water.&lt;br /&gt;
# Engage her in conversation again and repeat what you said before. Now give her the water and she will thank you.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* If she tells you to get out, just talk to her again and pick different conversation topics.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bottle of Water dropped by&#039;&#039;&#039;&lt;br /&gt;
* Mouboos (7.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 1 Bottle of Water&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* Lora Tay will henceforth craft or adjust some clothes, see below.&lt;br /&gt;
* 50,000 exp.&lt;br /&gt;
&lt;br /&gt;
===Clothes sewing===&lt;br /&gt;
If you have completed the above quest, Lora will be able to craft new clothes or adjust the size of them. Note that cropping and lengthening works on both undyed and dyed clothes. She only crafts undyed clothes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cotton Clothes dropped by&#039;&#039;&#039;&lt;br /&gt;
* Mouboos (2% + 1% + 0.1%)&lt;br /&gt;
&lt;br /&gt;
== Nicholas the Blacksmith==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; font-size:80%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Helmets&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Crusader Helmet (+18 Defense)&lt;br /&gt;
| 10 Iron Ores&lt;br /&gt;
| 10,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Knightâ€™s Helmet (+15 Defense)&lt;br /&gt;
| 5 Iron Ores&lt;br /&gt;
| 10,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Warlord Helmet (+18 Defense)&lt;br /&gt;
| 15 Iron Ores&lt;br /&gt;
| 10,000 GP&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Shields&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Steel Shield (+20 Defense)&lt;br /&gt;
| 2 Infantry Helmets&amp;lt;br /&amp;gt;10 Iron Ores&amp;lt;br /&amp;gt;1 Leather Patch&lt;br /&gt;
| 20,000 GP&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Hurnscald; the blacksmithâ€™s shop&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* Yellow Slimes are found on the second level of the Desert Mines and in the Cave beneath Hurnscald.&lt;br /&gt;
* Beware the aggressive Spiders (in the Desert Mines), they attack you on sight.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Infantry Helmets dropped by:&#039;&#039;&#039; Snakes (0.2%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Iron Ores dropped by:&#039;&#039;&#039; Yellow Slimes (1.5%)&lt;br /&gt;
&lt;br /&gt;
==Treasure Chest==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Desert Mines; at the end of the tunnel on the second level&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# â€œTalkâ€ to the Treasure Chest.&lt;br /&gt;
# Open with 3 Treasure Keys.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint&#039;&#039;&#039;&lt;br /&gt;
* Treasure Keys do currently have no other use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keys dropped by:&#039;&#039;&#039; Spiders (5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Short Sword (+100 Damage, can only be gotten from this quest)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 3 Treasure Keys&lt;br /&gt;
&lt;br /&gt;
==Rauk the Alchemist==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; font-size:80%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Potions&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Concentration Potion&lt;br /&gt;
| 20 Petals&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
| Iron Potion&lt;br /&gt;
| 20 Small Mushrooms&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Dyes&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Black Dye&lt;br /&gt;
| 40 Alizarin Herbs&amp;lt;br/&amp;gt;40 Cobalt Herbs&amp;lt;br/&amp;gt;40 Gamboge Herbs&amp;lt;br/&amp;gt;40 Mauve Herbs&lt;br /&gt;
| 20,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Dark Blue Dye&lt;br /&gt;
| 100 Cobalt Herbs&amp;lt;br/&amp;gt;50 Mauve Herbs&amp;lt;br/&amp;gt;1 Pearl&lt;br /&gt;
| 10,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Dark Green Dye&lt;br /&gt;
| 10 Cobalt Herbs&amp;lt;br/&amp;gt;10 Gamboge Herbs&amp;lt;br/&amp;gt;1 Maggot Slime&amp;lt;br/&amp;gt;10 Mauve Herbs&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
| Green Dye&lt;br /&gt;
| 20 Cobalt Herbs&amp;lt;br/&amp;gt;20 Gamboge Herbs&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Light Blue Dye&lt;br /&gt;
| 10 Cobalt Herbs&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
| Orange Dye&lt;br /&gt;
| 10 Alizarin Herbs&amp;lt;br/&amp;gt;10 Gamboge Herbs&amp;lt;br/&amp;gt;2 Iron Ores&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Pink Dye&lt;br /&gt;
| 10 Alizarin Herbs&amp;lt;br/&amp;gt;6 Petals&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Purple Dye&lt;br /&gt;
| 100 Alizarin Herbs&amp;lt;br/&amp;gt;100 Cobalt Herbs&amp;lt;br/&amp;gt;20 Mauve Herbs&amp;lt;br/&amp;gt;1 Pearl&lt;br /&gt;
| 40,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Red Dye&lt;br /&gt;
| 10 Alizarin Herbs&lt;br /&gt;
| 0 GP&lt;br /&gt;
|-&lt;br /&gt;
| Yellow Dye&lt;br /&gt;
| 10 Gamboge Herbs&lt;br /&gt;
| 0 GP&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Central Woodlands; West of Hurnscald&lt;br /&gt;
&lt;br /&gt;
===Potion making===&lt;br /&gt;
These crafting options are available from the beginning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* If you want gold, you are better off selling the Small Mushrooms and Petals than the ready potions; you will get 500 GP for the needed ingredients while only 250 GP each potion.&lt;br /&gt;
* These potions are also found as drops.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Concentration Potions dropped by&#039;&#039;&#039;&lt;br /&gt;
* Sea Slimes (1%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Iron Potions dropped by&#039;&#039;&#039;&lt;br /&gt;
* Spiky Mushrooms (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Petals dropped by&#039;&#039;&#039;&lt;br /&gt;
* Flowers (5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small Mushrooms dropped by&#039;&#039;&#039;&lt;br /&gt;
* Evil Mushrooms (5%)&lt;br /&gt;
&lt;br /&gt;
===Dye making===&lt;br /&gt;
These crafting options are only available once the player is initiated in the [[#Selim the Dyer|Dyer quest]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tips&#039;&#039;&#039;&lt;br /&gt;
* Most Woodland maps have the plants, but the Southernmost Woodlands (Cobalt and Mauve Plants) and the South-West Woodlands (Alizarin and Gamboge Plants) contain the most.&lt;br /&gt;
* Target the nearest enemy (the A-button by default) while walking around to easier find the plants.&lt;br /&gt;
* To gather these plants, attack them like you would any other monster.&lt;br /&gt;
* Pearls can be found at the Beach west of Tulimshar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alizarin Herbs dropped by&#039;&#039;&#039;&lt;br /&gt;
* Alizarin Plants (3 Ã— 30%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cobalt Herbs dropped by&#039;&#039;&#039;&lt;br /&gt;
* Cobalt Plants (3 Ã— 30%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gamboge Herbs dropped by&#039;&#039;&#039;&lt;br /&gt;
* Gamboge Plants (3 Ã— 30%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Iron Ores dropped by&#039;&#039;&#039;&lt;br /&gt;
* Yellow Slimes (1.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maggot Slimes dropped by&#039;&#039;&#039;&lt;br /&gt;
* Maggots (8%)&lt;br /&gt;
* Fire Goblins (8%)&lt;br /&gt;
* Bats (8%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mauve Herbs dropped by&#039;&#039;&#039;&lt;br /&gt;
* Mauve Plants (3 Ã— 30%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pearls dropped by&#039;&#039;&#039;&lt;br /&gt;
* Sea Slimes (0.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Petals dropped by&#039;&#039;&#039;&lt;br /&gt;
* Flowers (5%)&lt;br /&gt;
&lt;br /&gt;
==Pachua the Hermit Indian==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; font-size:80%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Leather works&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Resources&lt;br /&gt;
!style=&amp;quot;background:#efdead;&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
| Cowboy Hat (+6 Defense)&lt;br /&gt;
| 1 Fancy Hat&amp;lt;br/&amp;gt;2 Snake Skins&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|-&lt;br /&gt;
| Jeans Chaps (+6 Defense)&lt;br /&gt;
| 1 Jeans Shorts&amp;lt;br/&amp;gt;10 Snake Skins&lt;br /&gt;
| 1,000 GP&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; Yes, forever&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; 55â€“65&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Desert Mountains; at the south-west end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tips&#039;&#039;&#039;&lt;br /&gt;
* To find Pachua: The road of the map forks in only three places. Take the eastern route at the first fork, which is in the second cave. The next fork is in the fourth cave, you want to go south. Then the third fork is in the fifth cave, west is the way towards the Hermit. In short: east, south, west.&lt;br /&gt;
* There is also a magic note flying around in the Magic House in the North-East Woodlands that will bring you directly to Pachua.&lt;br /&gt;
&lt;br /&gt;
===Leather working===&lt;br /&gt;
These crafting options are available from the beginning. Note that it is random whether you get a White Cowboy Hat or a Black Cowbay Hat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snake Skins dropped by&#039;&#039;&#039;&lt;br /&gt;
* Mountain Snakes (1.5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Jeans Shorts dropped by&#039;&#039;&#039;&lt;br /&gt;
* Cave Snakes (0.4%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fancy Hats dropped by&#039;&#039;&#039;&lt;br /&gt;
* Snakes (3%)&lt;br /&gt;
&lt;br /&gt;
==Obtaining a Wooden Shield==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Hurnscald; Jack the Lumberjack&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
# Talk with Jack, he will ask you about your bow. And offer to make a shield for you.&lt;br /&gt;
# He want you to collect 40 Raw Logs for this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* You can find Log Heads in the South-West Woodlands.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Raw Logs dropped by:&#039;&#039;&#039; Log Heads (20%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Wooden Shield (+14 Defense)&lt;br /&gt;
* 2,500 Exp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 40 Raw Logs&lt;br /&gt;
* 5,000 GP&lt;br /&gt;
&lt;br /&gt;
==Robberies in Hurnscald==&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; No, only one time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from levels:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Hurnscald; Inspector&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: Agree to help solve robberies.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Old women&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, west.&lt;br /&gt;
#: Ask about robberies. She will tell you that she saw something, but would only tell Inspector himself.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will tell you that he doesn&#039;t belive her eyesight.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Old women with dyed clothes&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, west.&lt;br /&gt;
#: Dye some torso-worn and legs-worn clothes &#039;&#039;dark blue&#039;&#039;, put it on, then talk to the women. Keep the clothes after that.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Troupe Leader&#039;&#039;&#039;&lt;br /&gt;
#: Position: Tulimshar, Inn.&lt;br /&gt;
#: Talk to her, she will tell you that a mask was stolen in Hurnscald. Ask if she has any idea who might it been. She will tell you that a old man hang near theater after the show.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will ask you if you can interrogate Old man for him.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Old Man&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, east.&lt;br /&gt;
#: Ask him about hanging near the theater after the show. Hi will tell you that he was an actor when he was younger, but he wasn&#039;t there that night.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will ask you to verify his alibi with his wife, the Old women.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Old women&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, west.&lt;br /&gt;
#: She will confirm that.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will tell you that he don&#039;t know where to look, and ask you to talk to everybody again.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Old women&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, west.&lt;br /&gt;
#: Talk with her in dyed clothes. He will remember that she saw someone took large satchel and headed north.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Miner&#039;&#039;&#039;&lt;br /&gt;
#: Position: North of Hurnscald, mining camp, top level.&lt;br /&gt;
#: He will confirm that he heard the commotion and somebody got down to the basement, but nobody was there.&lt;br /&gt;
# &#039;&#039;&#039;Search bookcase&#039;&#039;&#039;&lt;br /&gt;
#: Position: North of Hurnscald, mining camp, basement, north west corner (needs to be step on).&lt;br /&gt;
#: You will find a upside down book, hollowed out with mask and note which you can&#039;t read.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: He will take care of that note and send you to the troupe leader again.&lt;br /&gt;
# &#039;&#039;&#039;Talk to Troupe Leader&#039;&#039;&#039;&lt;br /&gt;
#: Position: Tulimshar, Inn&lt;br /&gt;
#: Reward: 1500 exp, Noh Mask.&lt;br /&gt;
#: She will thank you for a good job, and let you keep the mask.&lt;br /&gt;
# &#039;&#039;&#039;Talk to the Inspector&#039;&#039;&#039;&lt;br /&gt;
#: Position: Hurnscald, south east of menhir.&lt;br /&gt;
#: Reward: 2500 exp.&lt;br /&gt;
#: He will tell you that they found all of the stolen items in the mining camp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints&#039;&#039;&#039;&lt;br /&gt;
* Mauve and Cobalt plants can be found in the South Woodlands.&lt;br /&gt;
* Pearls are dropped by Sea Slimes west of Tulimshar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward&#039;&#039;&#039;&lt;br /&gt;
* 1 Noh Mask (+3 Defense)&lt;br /&gt;
* 4,000 Exp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Total cost&#039;&#039;&#039;&lt;br /&gt;
* 200 Cobalt Herbs&lt;br /&gt;
* 100 Mauve Herbs&lt;br /&gt;
* 2 Pearls&lt;br /&gt;
* Cotton body-worn clothes&lt;br /&gt;
* Cotton leg-worn clothes&lt;br /&gt;
* 20,000 GP&lt;br /&gt;
&lt;br /&gt;
==Santa&#039;s Stolen Presents==&lt;br /&gt;
&amp;lt;!--I&#039;m not sure of the official name of this quest, if there is any at all. -Hoogli--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Snow Fields&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; no, only 1 time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from level:&#039;&#039;&#039; 50 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do:&#039;&#039;&#039;&lt;br /&gt;
# Santa needs 25 Purple Present Boxes, 20 Blue Present Boxes, and 5 Green Present Boxes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Purple Present Box dropped by:&#039;&#039;&#039; Rudolph Slimes (8%)&lt;br /&gt;
*&#039;&#039;&#039;Blue Present Box dropped by:&#039;&#039;&#039; Rudolph Slimes (5%)&lt;br /&gt;
*&#039;&#039;&#039;Green Present Box dropped by:&#039;&#039;&#039; Santa Slimes (5%)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints:&#039;&#039;&#039;&lt;br /&gt;
*If you attack a Santa Slime, his &amp;quot;reindeer&amp;quot; will join him in attacking you. Even though they die when you kill the Santa Slime, you neither get experience nor items from the Reindeer Slimes unless you kill them directly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
* 1 Winter gloves (+3% Defense) OR&lt;br /&gt;
* 1 Turtleneck sweater (+6% Defense)&lt;br /&gt;
&lt;br /&gt;
==Red Mask Quest==&lt;br /&gt;
&amp;lt;!--I&#039;m not sure of the official name of this quest also, if there is any at all. -libra69de--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Start location:&#039;&#039;&#039; Inside the new mine north of Hurnscald&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redoable:&#039;&#039;&#039; no, only 1 time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended from level:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to do:&#039;&#039;&#039;&lt;br /&gt;
#Read about the ritual in the bookcase inside the cave&lt;br /&gt;
#You need to collect many objects to make a ritual and open a chest &lt;br /&gt;
#* 1 maggot slime&lt;br /&gt;
#* 1 petal (from Flower)&lt;br /&gt;
#* 1 mushroom (from Evil Mushrooms)&lt;br /&gt;
#* 1 pearl (from Sea Slime)&lt;br /&gt;
#* 1 hard spike (from Spiky Mushroom)&lt;br /&gt;
#* 1 raw log (from Log Head)&lt;br /&gt;
#* 1 pink antennae (from pinkie)&lt;br /&gt;
#* 1 snake tongue from a Snake&lt;br /&gt;
#* 1 snake tongue from a Mountain snake&lt;br /&gt;
#* 1 snake tongue from a Cave snake&lt;br /&gt;
#* 1 snake tongue from a Grass snake&lt;br /&gt;
#* 1 key (from spiders)&lt;br /&gt;
#* 1 pile of ash (from Fire Goblin)&lt;br /&gt;
#* 1 Gamboge Herb&lt;br /&gt;
#* 1 Mauve Herb&lt;br /&gt;
#* 1 Cobalt Herb&lt;br /&gt;
#* 1 Alizarin Herb&lt;br /&gt;
#* 1 bug leg&lt;br /&gt;
#* 1 cave snake lamp&lt;br /&gt;
#* 1 iron ore&lt;br /&gt;
#* 1 Scorpion stinger&lt;br /&gt;
#* 1 Red Scorpion stinger&lt;br /&gt;
#* 1 Black Scorpion stinger&lt;br /&gt;
#* 1 piece of Cotton Cloth (from MouBoo)&lt;br /&gt;
#* 1 White Fur&lt;br /&gt;
#* 1 Silkworm&#039;s Cocoon (from Silkworm)&lt;br /&gt;
#* 1 Dark Crystal (from Skulls)&lt;br /&gt;
#* 1 Bottle of Water (from MouBoo) &lt;br /&gt;
#You need to open the barrier, that block access to the chest&lt;br /&gt;
#* Just find a Jack0 monster and kill it. You will recevive the &amp;quot;Soul of the Jack O&amp;quot;. Now you can pass the barrier and find the chest in the next room&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hints:&#039;&#039;&#039;&lt;br /&gt;
* Jack0s usually appear in a garden full of brown trees on its the left part. You can reach it from the cave north from Hurnscald&lt;br /&gt;
* It&#039;s a long quest, maybe you prefere to trade some object with other players&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reward:&#039;&#039;&#039;&lt;br /&gt;
* 1 Demon Mask(+3% Defense)&lt;/div&gt;</summary>
		<author><name>Tomminator</name></author>
	</entry>
</feed>