This guide is about creating a WoW Private Server (WOTLK) using Mangos. And because previously we’ve learned on how to compile mangos obviously the next step would be setting up Mangos which is going to be covered in this guide :)
Requirements
World of Warcraft Client version 3.3.3 (11723) or the latest version that Mangos support as stated on Mangos project description here
This guide is tested on WoW 3.3.3a client, and as long as the WoW client is supported by Mangos, it’ll work, although you might need to make some adjustment to several things listed in this guide, like the filename for example
MySQL
If you currently don’t have MySQL installed on your computer, please follow my previous guide on how to install MySQL on Windows XP or how to install MySQL on Windows Vista or Windows 7
Compiled Mangos Binary / Executable
Check my previous mangos compile guide because without the binary / executable itself, you won’t be able to run your own WoW private server. And beside this guide is based on my mangos compilation guide. So if you follow my previous guide completely (including the directory structure) then it’ll make thing easier for you
TortoiseSVN
This is needed in order to get the database for Mangos, as for the installation process i’ve described it on the compile guide. So if you follow the previous compile guide then you don’t need to reinstall it again
UDB and ACID Database
UDB and ACID is required so you can see NPC and doing quest in the WoW World, see below for instruction to get UDB and ACID
Downloading UDB and ACID
The first step is obviously downloading the required database in order for your WoW server to function as it should be, to do this we’re going to use TortoiseSVN to fetch the required files
1. Open Windows Explorer and right click on an empty space then choose SVN Checkout and type
http://unifieddb.svn.sourceforge.net/svnroot/unifieddb/trunk
as the repository address
2. After finished with the above process, wow we need to download SD2 ACID. Type
http://sd2-acid.svn.sourceforge.net/svnroot/sd2-acid
as the svn repository url
And now we’re done with the requirements
Initial Setup
Creating Directory Structure
Create new folder in C:\ named WoW and inside the WoW directory you just created, create two directories named data and mangos. So it’ll look like this
Although this step can be considered non essential, but if you created a directory structure, it can make upgrading Mangos and the required files such as DBC and Maps much easier later and beside in this guide i’m using the directory structure specified here so other than that it can make things easier for you to follow this guide
Extracting DBC, Maps and VMaps
1. Copy the ad.exe from contrib directory inside your mangos compile directory (on my compile example, the mangos compile directory is C:\Mangos-git) into your WoW installation directory. Then run the ad.exe and when it’s done you’ll see two new folders created named DBC and Maps
2. After finished with the extraction process, now you need to move the DBC and Maps directory from your WoW installation directory to C:\WoW\data
Note: Back when i write this, VMaps is disabled by default so i didn’t include it in the steps here but because now it’s enabled by default, to reduce / hopefully prevent further question regarding vmaps, all you have to do:
1. Copy the vmapExtractor3.exe and vmap_assembler.exe from the extractor_binary directory and then copy the make_vmaps.bat from vmap_extractor_v3 directory (both of them are located under contrib directory) to your WoW installation directory
2. Run make_vmaps.bat and wait till it finished and move the vmaps directory to C:\WoW\Data
Copying Mangos Config Files
Remember the directory structure we’ve created earlier? if yes, then that’s good because in this example i’m going to use the directory structure created earlier, if you choose to skip the creating directory structure part then make sure to adjust everything accordingly
1. Now you’ll need to copy the mangosd.conf.in, realmd.conf.in, scriptdev2.conf.in from your Mangos compile directory (use the search function as shown at below image) to C:\WoW\Mangos
2. And then copy everything from the Bin directory inside your mangos compile directory into C:\WoW\Mangos and then rename mangosd.conf.in, realmd.conf.in and scriptdev2.conf.in into mangosd.conf, realmd.conf, scriptdev2.conf. So in the end, you have these files (see below image) inside C:\WoW\Mangos directory
Setting Mangos Datadir
Go to directory C:\WoW\Mangos and open mangosd.conf and search for
DataDir = "."
and replace it with
DataDir = "C:\WoW\data"
Installing the Databases
Note: For future version (if you didn’t read this at the time this post published), adjust the SQL filename (for Mangos SQL Updates files and UDB SQL files) and directory name accordingly
Installing Mangos Databases
Before starting in this process, please note that the directory structure used is based on the mangos compile guide so if you use different path, make sure to adjust them accordingly. Also if you get "mysql is not recognized as an internal or external command, operable program or batch file." that means you didn’t set up MySQL to be installed to your Environment Variables PATH. See the MySQL Installation Guide on my previous guide for more info
Note: This step is intended for fresh installation only, if you’re upgrading mangos skip this step otherwise you’ll lose all your characters and logins data in your mangos database
1. Open Command prompt, and then type
cd /d c:\mangos-git\sql
then followed by
mysql -uroot -p -v < create_mysql.sql
This will create mangos database structure and also create the necessary user (because using root is dangerous)
2. Then type
mysql -uroot -p -v -D realmd < realmd.sql
This will import the necessary realmd tables into the realmd database
3. Finally type (but don’t close the command prompt yet)
mysql -uroot -p -v -D characters < characters.sql
This will import the necessary tables into the characters database
Installing UDB (Unified Database)
1. Remember the part about downloading database? if yes, then go to the directory where you download the UDB database, and then extract the UDB_0.12.0_mangos_9582_SD2_1639.zip inside the Full DB directory of your UnifiedDatabase directory so it’ll look like this
2. And now we’re going to import the database (it may take a while depending on how fast your computer is). From the command prompt window from before, type (don’t close the command prompt window yet again)
cd /d C:\unifieddb\Full_DB mysql -uroot -p -v -D mangos < UDB_0.12.0_mangos_9582_SD2_1639.sql
Updating Mangos Database
Because the Full UDB database is designed for Mangos Revision 9582, and at the time i wrote this the compiled Mangos binary we previously compiled at the compiling mangos guide is at Revision 9771, we need to import all sql files in your mangos compile directory\sql\updates after 9582 to mangos database unless there is no sql update file after that version (which is unlikely)
Tips: look at the UDB filename it state mangos 9582 which means that every mangos core update before and equal to Mangos 9582 has been applied and so we need to apply all sql updates that is released after revision 9582. And to check your mangos revision, just run mangosd.exe or realmd.exe and then open server.txt or server.log file to see the Mangos revision you’re running
For example right after 9582 in sql\updates\0.16 in mangos compile directory there is a sql file named 9589_01_mangos_creature_template.sql, so we need to import that one first and you can do this by simply typing:
mysql -uroot -p -v -D mangos < 9589_01_mangos_creature_template.sql
and right after 9589_01_mangos_creature_template.sql there’s another sql update filename called 9590_01_mangos_db_script_string.sql, so then you need to type
mysql -uroot -p -v -D mangos < 9590_01_mangos_db_script_string.sql
and so on, basically you’ll need to locate each sql update file that contain mangos in the filename (ignore the realmd and characters), and then manually import each sql file accordingly
In the future, in case you want to upgrade your mangos installation, you can do so by importing each sql file including the realmd and characters if there’s any. But why we didn’t import sql files that contains characters and realmd in it’s filename in this guide? the answer is, because we’re doing a fresh installation the realmd database and characters database already using the latest update, but if you’re upgrading in the future chances are there’s an update for either realmd and characters database also
For example, 9767_03_characters_characters.sql. Means that it should be imported to characters database and to import it you need to type
mysql -uroot -p -v -D characters < 9767_03_characters_characters.sql
And for realmd update, the sql filename 9748_01_realmd_realmlist.sql and to import it you need to type
mysql -uroot -p -v -D realmd < 9748_01_realmd_realmlist.sql
That’s it basically, this may be confusing at the beginning but once you get used to it, it’ll be easy for you
Updating UDB
Now we need to update our UDB database too (because there’s an update at the time i wrote this), here’s how to do this
cd /d c:\unifieddb\Updated\0.12.0_additions mysql -uroot -p -v -D mangos < 389_updatepack_mangos.sql mysql -uroot -p -v -D mangos < 390_updatepack_mangos.sql
Tips: if there’s an update for UDB in the future all you have to do is just import the correct update accordingly
Installing and Updating Scriptdev2
From the command prompt type
cd /d c:\scriptdev2\sql mysql -uroot -p -v < scriptdev2_create_database.sql mysql -uroot -p -v -D scriptdev2 < scriptdev2_create_structure_mysql.sql mysql -uroot -p -v -D scriptdev2 < scriptdev2_script_full.sql mysql -uroot -p -v -D mangos < mangos_scriptname_full.sql
In the future, if you want to upgrade Scriptdev2 (assuming that you have recompiled Mangos and Scriptdev2 and also imported the updated Mangos sql files and also UDB if there are updates as described in the Updating Mangos and Updating UDB). You just need to execute this from the command prompt:
mysql -uroot -p -v -D scriptdev2 < scriptdev2_script_full.sql mysql -uroot -p -v -D mangos < mangos_scriptname_full.sql
Installing ACID Database
From the command prompt again type
cd /d c:\sd2-acid\trunk\wotlk\3.0.4 mysql -uroot -p -v -D mangos < 3.0.4_acid.sql
Adjusting Realmlist and Creating Account
Editing realmlist.wtf
The next step would be editing your realmlist.wtf file located inside your wow installation directory\data\enUS (or your WoW Region like enGB, etc) and insert this
set realmlist 127.0.0.1
replacing everything inside the realmlist.wtf (make sure to create backup)
Creating GM Account
Now before getting into the World of Warcraft world, you need to create an account first for you to use, and to do that first you need to make sure realmd and mangosd process is running and then in the mangosd window type
account create username password
Where username is whatever username you want, and password is whatever you want for the account password. And then type
account set addon username 2
To set the expansion pack to Wrath of the Lich King (0 = Classic WoW, 1 = The Burning Crusade, 2 = Wrath of the Lich King) for the username you choose. And finally type
account set gmlevel username 3
To give the highest GM (Game Master) level to the username you choose, so he/she can do anything he/she want from wreaking havoc to causing apocalypse
in the example above, i create a new gm account with reaper as username and ilovekeikokitagawa as the password (p.s don’t take the password seriously) :P
Note: later in the game you can to type .commands to see all available commands for you (or feel free to look at the GM Commands List page)
Optional: Setting up Public WoW Server (LAN or Internet)
If you’re planning on allowing people to connect to your server either from the Internet or LAN, then there’s one more thing you need to do so other people can connect to your wow server
First you need to open the command prompt as usual and then type
mysql -uroot -p
now type
use realmd;
and finally type
select * from realmlist;
and you’ll see the realm address is set to 127.0.0.1 by default, but because you’re going to allow other people to connect to your server / computer, you need to change the ip address into your Public IP Address. The easy way to know your public ip address is by visiting whatismyip.com and make a note of your IP Address
Once you’ve obtained the public ip address the next step would be changing the ip address in the realmlist table, and to do this just type
update realmlist set address = 'your public ip address';
then to make sure the change has been applied successfully, you need to type
select * from realmlist;
If you’ve changed it then you’ll see your new public ip address instead of 127.0.0.1
The next step is restart realmd.exe, and mangosd.exe process in order for the change to take effect
Now after finished with the above process, you’ll need to open your realmlist.wtf and change the set realmlist into your public IP Address …. and tell your client to use the your public ip address in their realmlist.wtf file and you’re all set ;)
Note: if you’re behind router, make sure to forward port 3724 and 8085 (default port used by WoW) on your router or set up DMZ. And if you’re behind firewall make sure to allow incoming connection on port 3724 and 8085
Special Note: To those with Dynamic IP Address
If your internet provider gave you a dynamic ip address, then the solution is to get yourself a dyndns address first, and to do this you need to go to www.dyndns.com and register an account there, and i assume that your wow server is called mycoolwowserver.dyndns.com
Then after finished with the registration process, all you have to do is just follow the above but instead of writing your public ip address you need write your dyndns.com address
For example at this part:
update realmlist set address = 'your public ip address';
You need to replace the command with
update realmlist set address = 'mycoolwowserver.dyndns.com';
And then continue with the rest of setting up public wow server part. And after finished with all public wow server part, now you need to open hosts file located in Windows\System32\drivers\etc (C:\Windows\System32\drivers\etc\hosts), and then add this at the bottom of the file (for lan users change the 127.0.0.1 below to the LAN IP address where the mangos server located)
127.0.0.1 mycoolwowserver.dyndns.com
And …
That’s it you’re done … if i forgot something, don’t be shy just let me know so i can fix it immediately. And if you got any questions or have a request for the next article, feel free to post your comment :)
And, if you want to create custom npc on your mangos server, please check how to create custom npc guide
Too much work, give me the fastest way
If you feel overwhelmed by everything listed in this guide then feel free to use this option, but make sure you have mysql installed as listed on mysql guide for vista and 7 (for vista users) and mysql guide for xp for windows xp users
- Extract the file into C:\
- Copy ad.exe from tools directory into your WoW installation directory and let ad.exe finished with extracting DBC and MAPS and then move the DBC and MAPS directory to C:\WoW\data
- Run import.bat and when prompted for password, enter your mysql root password
- Start realmd.exe and mangosd.exe
- Edit the realmlist.wtf file and create new account as described in the Adjusting Realmlist and Creating Account part … and play
Enjoy, consider this as a supplement for this extremely long guide and oh make sure your WoW client is version 3.3.3 and it’ll create a fresh installation so if you previously have used mangos and don’t want to lose your precious data make sure to create backup first
Download Supplement from Megaupload | Download Supplement from Rapidshare
Hey! Do you know if they make any plugins tto protect against hackers?
I’m kinda paranoid about losing everything I’ve worked hard on.
Anyy tips?
iv used your guide and got to the point where i want to make the realm public
when i type
use realmd;
i get the error
ERROR 1049 : Unknown database ‘realmd’
been trying for about a week to get it going and your guide has got me the farthest
does this work with 3.3.5a? and will it have all raids and instances running?
Hi! Thanks for this awesome howto.
One question, will this work on the windows server 2012 edition (datacenter version).
Cheers.
I like how your instructions are more about teaching how to do it step by step. The long way is the best way to learn. I’m using your explanations of MySQL commands to teach myself how to manage the database.
Hey reaper,
Thanks for the guide so far everything is working out for me. Until I hit updating the mangos sql set.
It seems straight forward and I’ve been able to update the main update packs (up to 12097_01_mangos_mangos_string.sql)and corepatches but when I try to update to the next one (s1691_12112_01_mangos_spell_template.sql) it returns an error 1054 (42S22) at line 1: unkown column ‘required_s1667_12097_01_mangos_mangos_string’ in ‘db_version’
I figured that the database didn’t update correctly with from the update packs so i started going backwards to find the next in sequence to start applying but to no avail. any ideas?
Mangaed to figure it out, I had to alter the .sql file so the the required file matched the version i was at and it updated fine from that point on.
Everything else worked for me, Thanks
it only workd for 3.3.3 or work too for 3.3.5?
Hello , First of all . thank you for all kinds of guides you made for us :3
Been using your guides for around 1 year by now :P
I’ve got abit problem here , been having errors since started creating and compiling but all passed when I tried various ways to fix stuff . but now I got this problem and it looks like it’s stuck.
At the end of the creating server, When you are about to create your account & log. Mangosd.exe won’t stay open , it closes after 1-2 seconds.
I appreciate any kind of help.
You’re welcome Shayan and sorry for the delay in response, as for Mangosd wont stay open i need to know what is in the server.txt file (or the log file as defined in mangosd.conf in your mangos directory, and paste it to pastebin.com) so i can see what causes the problem =)
oh it’s fine :3 , and sorry i can’t paste it anymore since I deleted the whole deal and I start again , no pain no gain huh? ;p
But if I recall correctly , in server log . It said that 12002_mangos_spell_template.sql is missing from the database. Odd that I tried to fix it but it only referred to another missing sql , for example XXXX_mangos_chain_spell.sql ( dunno if I said it right).
But well I’m trying again and thank you once again for your time and these guides.
I was wondering if you were going to do a cataclysm mangos server setup? I love your work on WOTLK server. I set up these servers for my daugher, niece’s, nephew’s, so they can have a place that I can feel safe letting them play without the fear of herbert the pervert trying to get to them. I hope to hear from you soon. Keep up the good work. James
Hello James,
First of all i’m sorry for the delay in response because i’ve been away for a while and glad to hear that you liked it. And about Cataclysm, unfortunately the only thing available (even now) is still for client version 4.0.6a only, so if you’re using newer client it won’t work (well there’s the development branch, it might work, but anything higher than 4.0.6a is not supported). But i’m not sure whether it’s stable or not because i don’t even have Cataclysm installed so i can’t test it
No problem with the delay, I understand you can’t be on here 24/7 and I am thankful for the responce. Do you think that you’ll be creating a Cata pack anytime in the future. I just like your style. You make the instructions easy to follow and you don’t make me feel like a monkey doing a math problem with your directions.
You’re welcome James, as for creating Cata guide, actually i do have a plan on writing about it but because i’m sure people aren’t interested on reinstalling WoW again, i don’t think it is a good idea
The reason for this is mainly because many people have patched their WoW (Cata) installation above the supported version (4.0.6a) and because this time there’s no way to revert to the old patches, you’ll need to reinstall WoW till Cataclysm expansion (4.0.6a) and then stop updating it and don’t forget that i need to download Cataclysm client first because i don’t have it lol
Note: If you have large hard drive(s) you can easily have two separate installation one is for the emulator only while the other installation is for official servers if you’re playing on official Blizzard servers but that would take up a big portion of your harddrive
Hi, i am having a problem, I am at installing the databases- installing mangos databases. i am on part installing UDB #2 And now we’re going to import the database (it may take a while depending on how fast your computer is). From the command prompt window from before, type (don’t close the command prompt window yet again) well when i put in mysql -uroot -p -v -D mangos < UDB_0.12.0_mangos_9582_SD2_1639.sql
the command promp it says system cannot find the file specified. i downloaded the DB and extracted i just dont no what else to do from here. thanks :)
You need to change directory first to where you extracted the database by using cd /d x:\location where x:\location should be changed to the sql file location :)
First of all great job on these how-tos, love them. Great work.
Now here is my question. I have setup all of this before back on the BC expansion you had a while back and even had it to were all my friends could connect to my server which was setup on it’s own box. Now I have setup a new one with all the latest updates to Mangos and the fixings, It works really well and my roommate and I can play. However I can no longer get it to be setup for external connections.
I have all the port forwarding setup correctly as well as the firewall settings have been checked and double checked.
I am running this now in VMware on a Windows 2008 R2 with a dedicated 2+ gigs of ram and a dedicated processor core and a dedicated NIC. It is pulling a network aaddress and is being recognized by the router. I have it set to my DDNS as the address and the realmlist.wtf is set properly too. Mind you I can setup for LAN play just fine but when I reconfigure everything for external connections it won’t work.
Any suggestions?
You’re welcome Lord Nikon, and glad to hear that you liked it :)
As for your question, because you says about VMWare, i assume that you put and run Mangos inside a virtual machine. I have to ask you first, does your DynDNS address is set to your external/public IP Address and not your lan ip address?
If your DDNS is already set to your external ip address, but other people from outside still can’t access your server; to make sure that there’s nothing blocking connections made to that specific port (3724) from outside source (internet) the easiest way to confirm it is by:
0. Make sure that mangos isn’t running / stopped
1. Install Apache or other web server you’re familiar with in that virtual machine
2. Change Apache / the web server process to listen on port 3724 then start Apache process
3. Try to access it from your browser using http://yourddns.com:3724 from external machine (internet)
thank u
You’re welcome Eddy =)
I do want to add a post here to make everyone that reads this guide aware that when you are importing the UDB sql file to your database you may find your self unable to import the file due to the fact it is 76.0mb in size and if you use mysql with php or anything else you might have sizing turned down so it can not handle that big of a file. I do how ever suggest any one that has this issue should consider opening the sql up in word pad and cutting the sql codes down in smaller sql files and import it that way. Lol the writer of this guide sorta left that warning out i guess. I also want to add that the updating of the mango database is tricky and I believe strongly that the writer of this guide should consider to redo that in a more detailed fashion.
To answer your question again or perhaps criticism? because i see it that way judging from the tone of your comments on the how to compile mangos and your comment here on this page. (i love constructive criticism or good suggestions as long as they’re valid of course) =)
76MB is small, and MySQL were designed to handle data much larger than that, if your system can’t handle importing 76MB mysql data there’s something completely wrong with your computer even if you’re using MySQL with PHP such size is small and NO you don’t need to edit the sql file manually in wordpad
If you’re using phpmyadmin to import and get an error message that’s a different story but i didn’t tell anyone here to use PHPMyAdmin to import the database so if you’re doing that then it’s your fault
As a note: due to error on anti spam protection used here, the database size of this small site gets to the size of 465MB and no problem at all if you’re importing and exporting such large data from mysql cli because even that amount is still small … but if you use php or anything other than mysql cli to import it to the mysql database then you’re not doing it right unless, you don’t have access to the mysql cli, like if you’re on shared hosting and no ssh access available, but who’s going to run a wow server on shared hosting and if you run a site and your database gets to that size you won’t be on a shared hosting plan
For the warning part see above, as for updating mangos database tricky? That depend on the person. I’ve tried to explain it as clearly as i can
Tips: look at the UDB filename it state mangos 9582 which means that every mangos core update before and equal to Mangos 9582 has been applied and so we need to apply all sql updates that is released after revision 9582. And to check your mangos revision, just run mangosd.exe or realmd.exe and then open server.txt or server.log file to see the Mangos revision you’re running
As quoted from the Updating Mangos Database part, followed by example after. So i believe i already made it as clear as i can as i believe that is already more than enough for most people except for some. But as i’m not a native english speaker, i can’t write it in proper english, so if you could write it better, could you perhaps post a correction?
And finally I’d recommend you to head over to mangos forums instead http://getmangos.com that i think might be best for you =)
Btw, i have replied to all of your comments on the how to compile mangos page just in case you didn’t notice
It is once again time for me to reply. You said in the part Extracting DBC and Maps to add the ad.exe file found in the contrib folder to the wow installion folder. That is do able but there is a small issue here. Inside the contrib folder there are many other folders and there are at least two ad.exe files i have seen. So the question really is now which one of the two are you talking about? The one from the folder extractor or the one from the folder extractor_binary? The other issue is neither one of these work.
They both same, the extractor_binary is where they put all the pre-built contrib binaries there (don’t know since when, but back then it’s located in extractor only). If it’s not working, are you running a supported wow client? at the moment the supported wow client version is 3.3.5a and older