This is ONLY for new people who want to run a PUBLIC server on eqemulator.net
I am only trying to save people the hassle of jumping all over these forums
looking for information on the setup. There is lots of helpful people and
helpful information on these forums, but when they see the same questions
being asked over and over again, it becomes annoying, especially when YOU
are expected to do a lot of searching for answers before you ask. And, yes,
there is thousands of posts in the Windows Server Support forum and it can be
overwhelming. No, the search feature is not perfect, and it can take a LONG
time to find everything you need to know. But keep the following in mind:
Everyone involved in the EQEmu community are volunteering their time for any
and ALL work, admin, development and help that these forums are full of.
So there is NO librarian at a desk being paid to help you everytime you need
it. Everything is out of the kindness of their EQEmu hearts
*WARNING*PLEASE READ FIRST*
One of the biggest reasons some people end up with problems is because
they "missed" something in one of the guides.(I've done it myself)
Please make sure your not just "skimming" over the text written here.
If you read each and every single line in the following steps, and I mean
every character, symbol, phrase, line and step, before moving on to the
next one, double checking to make sure, you will have NO PROBLEMS.
I can almost guarantee, if you get an "error" in your setup, you probably
"missed" something, or changed something you weren't supposed to. You
have no idea, how much one single mis-typed character can cause your
server not to start, run or connect to the public server list. I would
recommend not starting the setup until you are in a position to concentrate
on what you are doing.
FIRST - The Basic Program Downloads (this is how I organized it all)
There is specific instructions to installing Zlib, MySQL and Visual C++ in
this guide. Please read them before installing.
Make a folder somewhere on your drive called EQEmu Installs put all the
necessary program installs you need before you start. I have all these installs
backed up on disc, so I never have to do it again.
*WARNING*64-BIT Windows Users*
I use the 32-BIT versions of Perl and MySQL to avoid problems.
EQEmu is a 32-bit application.
For WinRAR, go here - (just download the trial version at top of page)
For Zlib, go here -
For Perl, go here - (I use 5.1 - 1007 version)
For MySQL, go here - (scroll down the page to see downloads,I use 5.1.54 version)
For MS Visual C++ 2008 Express Edition, go here -
For Navicat Lite, go here -
For TortoiseSVN, go here -
For Notepad++, go here - (this can be essential for editing)
SECOND - Installing the Basic Programs
(My preference is to reboot computer after each install, whether needed or not)
1. I would suggest installing WinRAR first if you haven't already.
2. Unzip the Zlib files to c:\zlib (NOT c:\zlib\zlib) and inside that folder,
copy one file called ZLIB1.dll to your c:\windows\system32 folder, then reboot.
3. Now install the Perl 5.10 (1007). Type yes to everything BUT There will be
one question that has C:\Perl in it. That question requires you to enter
that path as the answer. So just type c:\perl (YOU HAVE TO REBOOT FOR NEXT STEP)
After you rebooted, open command prompt and type the following (one at a time and
wait for it to finish):
ppm install DBI
ppm install IO-stringy
4.Now install MySQL 5.1 (this will be installed to C:\mysql)
When you first start up the install, make sure you choose CUSTOM install.
IMPORTANT: after clicking "next" this is where you change the install
path to "C:\mysql
On that same menu, make sure ALL options are installed.
After clicking "next", on that menu, choose Detailed Configuration.
After clicking "next" again, choose Server Machine.
After clicking "next" again, choose Multifunctional Database
On the next menu, there is nothing to change, click "next" again.
On that menu, choose Online Transaction Processing (OLTP)
Then click "next". UNCHECK the strict mode option, and make sure that the
TCP/IP Networking is checked ENABLE and at port 3306.
After clicking "next" again, Choose Best Support for Multilingualism.
After clicking "next" again, make sure BOTH of the following are checked:
Install As Windows Service and Include Bin Directory in Windows Path
After clicking "next" again, you will be prompted for a password.
(This password is what goes with your SQL database username)
Your SQL username is automatically set as "root"
After you click "next" again, you will get a menu with "Execute" on it.
Just click that and wait, as it installs and finishes. Reboot.
5.Now we install Microsoft Visual C++ 2008 Express Edition
You can just install this with all the default installation. Nothing to
do until after installation is complete. But once it is done;
Open up the program and on the menu at top, click on "Tools"
From that menu choose "Options" and then you will see a menu list with
"Projects and Solutions" with a little "+" sign to expand that menu.
You will see "VC++ Directories" to click on and change the menu to the right.
On the top right of the menu you will see "Show directories for" and under
that, by default, it will show "Executable files".
First you need to change that to "Include files" from the drop down menu.
You will also see a little yellow folder icon under that drop down menu.
This is to "add a new line". After you click on that and see a new line,
you will see a grey icon to the right of that line with 3 dots [...]
Click on that to browse for the following: You will repeat this for all 3
new lines.***NOTE** the following are FOLDERS, not files.
Now after those 3, change the "Show directories for" to Library files and
repeat the steps for the following 3: (notice, a couple are different)
OK, Your done with installing the C++ program.
6. Now you can install TortoiseSVN, Navicat and Notepad++ using defaults
(click yes or next to everything)
OK, now you have all the basic programs installed, we can download the sources
needed to compile, setup and configure the server.
7. Create 3 seperate folders on your C-drive;(the folder names are a preference)
1st one. source (this is where you'll download and compile the source files)
2nd one. eqemu (this will be your main server folder)
3rd one. peqdb (this will have your database source files)
*NOTE* - when I mention "server folder" in the rest of this setup, I am pointing
to the folder called eqemu. (not the source folder)
8. Now on your main C-Drive, right click on the folder called source.
From the menu that pops up, you will see SVN Checkout...Click on that to
bring up a Checkout menu.
On the TOP LINE called URL of repository, copy and paste this line in to it:
Then click OK. It will start downloading all the server source files. When it
is finished, it will show "At Revision XXXX" (XXXX being a number). Then close
the window. Your source folder will now have many files and folders in it.
***NOTE** - After your done compiling the source, there will be lots of files
to copy over to your server folder from your source folder. But first -
9. Open up the MS Visual C++ 2008 Program that you installed.
Click on "File" and scroll down to "Open" and from that menu "Project/Solution"
The browser will pop up and you will navigate to C: drive to the source folder.
Inside the source folder is trunk folder. Inside that one is EQEmuServer folder.
Click on that folder and inside, one of the files Server.sln (NOT Server71).
Click on Server.sln and click open.(this file will have a number "9" on it)
You should now see the project on a menu (on the left)
On the top menu, click on "Build" and choose "Clean Solutution" from that menu.
At the end of that it should say Build: 5 succeeded 0 failed 0 up-to-date 0 skipped
Now, at the top menu click on Build and scroll down to "Configuration Manager".
You will see a drop-down menu called "Active solution manager" (make sure it is)
Change that drop menu entry to "Release" and click "close".
***WARNING*** There is also another option in there for "ReleaseBots". You would want
that one if your implementing the bot system.
So now, its time to click on the top menu called Build and choose "Build" from that one.
It will start building the server for you. Don't pay any attention to the warnings and
crap that goes up the window, A lot of it doesn't mean anything.
All you have to hope for, is when its done, it will give that same line again:
Build: 5 succeeded 0 failed 0 up-to-date 0 skipped
THIS WILL TAKE AWHILE TO BUILD - HAVE A COFFEE!
If the build was successful, (5 succeeded), you DO NOT have to re-do that just because
you have future problems. The rest of the setup is copying files, sourcing your database
and configuring your server. The database and the server are two seperate things.
Your config files will help connect the two when your server is finally up and running.
10. It's time to start copying files from your source folder to the server folder.
***WARNING** - All of the files I am going to list here NEED to be copied over to your
server folder. you will find them all in different sub folders in the source folder.
First go into /source/trunk/EQEmuServer folder. You will see a folder called Build.
This folder was created when you compiled the server apps.It contains 5 files you
need to copy over to your server folder:
Chatserver.exe, eqlaunch.exe, World.exe, Zone.exe and EMuShareMem.dll
Next, In /source/trunk/EQEmuServer/utils folder, copy these to your server folder also;
mail_opcodes.conf, opcodes.conf, patch_6.2.conf, patch_Anniversary.conf,
patch_HoT.conf, patch_SoD.conf, patch_SoF.conf, patch_Titanium.conf, schema.xml
Next, In /source/trunk/EQEmuServer/utils/defaults folder -
Copy ALL the folders and files inside this folder. EVERYTHING !!!! and put them in your
server folder also.YOU DON'T need the folder called .svn
11. Ok, Now you need to download the Maps and quests.
In your server folder, right click on the quests folder and choose "SVN Checkout"
In the "URL of repository" line copy and paste the following:
(Then click on OK)
Let it download the quests. It will show "At Revision xx when done.
Next, in your server folder, right click on the Maps folder and choose "SVN Checkout"
In the "URL of repository" line copy and paste the following:
(then click OK)
This will take awhile, have a coffee
12. Now, inside the quests folder where you downloaded all the quests, there is a folder
inside that one called plugins. You need to go inside there and copy ALL of those
plugin files over to your main plugins folder in your server directory.
Let's make sure you have ALL FILES copied over that are supposed to be:
In your eqemu (server folder) there should be 6 folders.
1. logs (this will be empty right now)
2. Maps (full of all the map files you downloaded)
3. plugins (has all the plugin files you copied from /quests/plugins folder)
4. quests (has all the quests you downloaded.)
Aside from those 6 folders, you should have at another 22 files in your server folder.
If you don't, go back to step 10 and start over.
So NOW, you can download and source in the database (and updates needed)
13.First, go to your C-Drive and right click on the folder you made called peqdb
and choose "SVN Checkout"
In the "URL of repository" line copy and paste the following:
(then click OK)
It will finish with "At Revision XX"
Next, go to that folder peqdb and unzip the file from peqdb_rev1751.sql.gz
to the same peqdb folder.
This file will be named peqdb_rev1751.sql (without the .gz)
The "rev1751" was the most current at the time of this writing. It may change over time.
14. Ok, now open up your Navicat Lite program that you installed.
On the upper left you will see Connection. Click on that and choose MySQL
A connection window will open. The only thing you really need to do is put your mysql
password in (make sure the "Save Password" is checked) and click OK.
This will create a connection with MySQL.
In the Connections window, you should now see localhost_3306 (Double click on that)
Then right click on that same name (localhost_3306) and choose New Database...
In the next window, in the first line, type peq (then click OK)
Close Navicat Lite.
15. NOW, you need to go in to a command prompt and navigate to the peqdb folder.
Simply type cd \peqdb and you should be there. You will see: C:\peqdb>_
REMEMBER THE PASSWORD YOU GAVE when you set up MySQL ? (You need it NOW)
***WARNING*** - at this point, make sure you are in the peqdb folder.
Type mysql -uroot -p
Hit enter and enter your password. (Hit enter again)
You should now see a prompt that looks like this: (along with "Welcome" text before it)
Type the following (in order):
use peq (Hit enter and you will see a short note saying "Database changed")
Then type the following:
source peqdb_rev1751.sql (when this is done, you will be back at the mysql>_ prompt)
Then type in the following:
source load_player.sql (this will load fast)
***WARNING*** - When you compiled your server, if you chose "ReleaseBots", you will now
need to type the following at the mysql prompt:
Which ever you chose, you can now close the command window and work on the sql updates.
***WARNING*** - the sql updates ARE NOT in the peqdb folder, they are in the source
folder where you compiled your server, but you can use Navicat Lite to run the updates.
16. When you open Navicat, double click on the localhost_3306 name and double click on the
peq name. Then right click on the peq name and choose "Execute SQL File"
In the window that pops up, click on the little square with 3 dots [...] to navigate to
the following folder(on your C-Drive: /source/trunk/EQEmuServer/utils/sql/svn/
You will find a lot of .sql files in there, but you only need the ones starting with the
number 1711 (and up)(this is based on using the 1751 database)
So first click on the 1711 file called 1711_account_restricted_aa.sql and click Open
Then click Start. It will source that sql in to your database.
***NOTE*** - You will have to do this step with each one, especially the ones that have
the word "required" in the name of the file.
The reason your doing this, is because, even after a new database revision is out, all
the updates developed after that, need to be sourced in. In this case, when the rev1751
was sent out, (after the 1667), not all updates were applied to the release.
I know it leaves more work for us "end users", but what the heck, it's free
***WARNING*** - You may run in to errors on some of the updates, (I ignored some), but
there is one you can not ignore: 1711_account_restricted_aa.sql
YOU NEED THIS UPDATE for your server to create accounts without errors.
If you get an error when sourcing that in, you can do this to help it along:
Open the 1711 file with Notepad++ and remove the first line (there is 3)
After removing that line, run the update again.
I CAN NOT help you with all the errors from the updates, but just search the forums for
***TIP*** - Once you have your database updated fully, BACK IT UP !!!
That is easily done without even logging in to your mysql.
Create a folder on your C-Drive (or wherever), called backup
Then in a command window, simply type the following:
mysqldump -uroot -ppassword peq > c:\backup\peq_backup.sql
(I do this frequently while I work on my server and burn it on a disc)
Then if you ever have to re-install everything, you can easily source your whole database
back in by typing the following: (make sure your in that same backup folder)
mysql -uroot -ppassword
***Note** After re-installing, make sure you created the peq database name again with
But anyways, in your server folder, you will have two xml files in there, one called
eqemu_config.xml and another called eqemu_config.xml.full
You don't need both of these. DELETE the eqemu_config.xml and keep the other one.
Rename the other one, by REMOVING, the .full at the end of it. So it has the same name
as the first one you deleted. (the .full xml file is a more complete config)
Editing this xml file is where a lot of people don't understand when someone trys to
advise them NOT TO EDIT LINES, they don't listen and then get frustrated.
You have no idea how SIMPLE it is to configure this file.
First of all when a line has these characters in front of it: <!--
That means it is commented out FOR A REASON. DO NOT REMOVE these characters from
any of the lines that have them.Most of the configuration in this file and your server
is already set to connect to the public eqemulator.net server list.
The only changes you need to make are the shortname, longname and database info
I am posting a sample of a eqemu_config.xml file below. If you want, you can copy it
and paste it in to Notepad++, then edit what I mentioned and save it in your server
folder (MAKE SURE it goes in your server folder) with the proper name.
<!-- Set the shortname to ONE word. The longname is what shows up on server list -->
<longname>My Long Name</longname>
<!-- DO NOT EDIT ANY LINES BETWEEN HERE AND THE DATABASE SECTION -->
<!-- <address>do.not.edit</address> -->
<!-- <localaddress>do.not.edit</localaddress> -->
<!-- Loginserver information. DO NOT EDIT -->
<!-- Server status. Default is unlocked DO NOT EDIT RIGHT NOW -->
<!-- <unlocked/> -->
<!-- Sets the ip/port for the tcp connections. DO NOT EDIT -->
<tcp ip="localhost" port="9000" telnet="disable"/>
<!-- Sets the shared key used by zone/launcher to connect to world -->
<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="false" mimefile="mime.types" />
<!-- Chatserver (channels) information. DO NOT EDIT -->
<!-- Mailserver (in-game mail) information. DO NOT EDIT -->
<!-- The defaultstatus is what status the new toons will have on your server -->
<!-- Sets port range for world to use to auto configure zones DO NOT EDIT RIGHT NOW-->
<ports low="7000" high="7100"/>
<!-- Set username to root and password is your MySQL password and db to peq -->
<!-- Launcher Configuration DO NOT EDIT-->
<!-- <logprefix>logs/zone-</logprefix> -->
<!-- <logsuffix>.log</logsuffix> -->
<!-- <exe>zone.exe</exe> -->
<!-- <timers restart="10000" reterminate="10000"> -->
<!-- File locations. DO NOT EDIT -->
<!-- <spells>spells_us.txt</spells> -->
<!-- <opcodes>opcodes.conf</opcodes> -->
<!-- <logsettings>log.ini</logsettings> -->
<!-- <eqtime>eqtime.cfg</eqtime> -->
<!-- Directory locations. DO NOT EDIT -->
<!-- <maps>Maps</maps> -->
<!-- <quests>quests</quests> -->
<!-- <plugins>plugins</plugins> -->
Now you can make a start.bat file to put in your server folder with the following lines:
echo waiting for the world to finish before starting zone...
ping -n 10 127.0.0.1 > nul
start eqlaunch.exe zone
Then create a shortcut on your desktop to run this file.
PORT FORWARDING ON YOUR ROUTER (if your using one)
Log in to your router and you need to forward the following ports to the internal
ip of your server computer : (These are the ones that worked for me)
7000 to 7100 (Port Range Forwarding is essential for this)
To find out the internal ip of your computer, at a command prompt type ipconfig
The 192.168.1.xxx number that is listed is the forwarding IP you need.
Every router is different, so if you don't know how to log in to it, then you
will have some searching to do without the manual
Most commonly, a web browser is used, typing in an address like 192.168.1.1
Mine was set to leave username blank, and enter a default password. Then you
can change that, but that is MY ROUTER ONLY, yours may be different.
OK, If you've done all that, been there and back again, and your 300% sure that
you followed these steps exactly, crossed all t's and dotted all i's - Your done.
Before you click on that Start.bat file, a couple things to know.
Two command windows will open up and you will start to see text scrolling by.
A couple of times you might see the word "error", but don't jump the gun right
away. One you will definately see is with eqtime.cfg THAT IS NORMAL.
You might see another brief one while the WORLD is connecting.
If everything has gone smooth, you should see the zone servers loading.
There will be 5 of them in total, and the text will stop after the 5th one.
If your seeing a constant error with anything "FAILED TO CONNECT" that keeps
going up your screen, something is wrong. TRACE YOUR STEPS and READ.
***NOTE*** - Your server places it's log files in the logs folder. This is where
you look for troubleshooting problems.