Setting up an EQEmu (Everquest) Server

From Tutorials

Jump to: navigation, search


Contents

Guide Q and A

Q: Will this guide let me run the eqemu server and play eq on the same computer ?

A: Yes.


Q: Will I be able to set up multiple computers on my LAN, invite my friends over and go to lower guk as a group ?

A: Yes, and speaking of Ykesha's .. as of this writing, quests up to Legacy of Ykesha have been implemented.


Q: If I use this guide will I be able to have other eq clients on the internet connect to my eqemu server ?

A: In theory you could do some port forwarding on your router and enable this, though this guide does not cover that aspect setting up eqemu.


Q: Will the setup take less than 10 minutes ?

A: No, and actually there are quite a number of things that can go wrong during an install. I would suggest getting familiar with the eqemu forums at http://www.eqemulator.net/forums/index.php now, there is a wealth of information there about everything eqemu. Be sure to always search for any problems that arise before adding new posts.


Q: Do I have to compile the eqemu source code to get a working server ?

A: No, you can get a working server without having to compile anything, however this guide is geared to set you up so that if you do choose to dig into the eqemu source code and start doing compiles that it will be as easy as possible to migrate to that direction.


Q: Should I use DHCP or static IPs on my LAN while doing this ?

A: Static IP's seem to work a lot better with eqemu, and this guide assumes you are using static IPs.


Q: When was this guide written ?

A: It was started on Dec 5th, 2008.


Q: Is this guide written for Windows or *ix ?

A: All the steps were completed and tested on a Windows 2003 Server.

History

The EQEmu project has been going for quite some time, locations for where to get various files have changed (sometimes more than once), I will attempt to point you to the latest and greatest spots to download. Of course in that respect this guide will become outdated as well (so always make sure you are following the latest guide you can get your hands on).


Downloads

Here I'll attempt to point you at all the programs / files that you'll need or want during setup.

For these utility programs, just grab the latest version available.

  • 7-Zip (841k) - This compression program is free and handles tar, gzip and zip formats. Install this at any time.
  • cvs.exe (3.5M) - Handles download / upload for cvs repositories.

For these programs, grab the specific version if listed.


Install CVS and Download PEQ Quests / DB

To continue getting the downloads we need, cvs will need to be installed. So go ahead and do that, accept any default options and continue with these steps.

  • Create up a folder named PEQ-Quests (wherever you are storing your downloads at)
  • Open a command prompt
  • CD to the directory you just created
  • Download the quests by checking them out of a cvs repository, using the following command
cvs -d :pserver:anonymous@eqemuquests.cvs.sourceforge.net:/cvsroot/eqemuquests co peq_quests
  • Create up another folder named PEQ-DB
  • Open a command prompt
  • CD to the directory you just created
  • Download the database sql scripts by checking them out of a cvs repository, using the following command
cvs -d :pserver:anonymous@peq.cvs.sourceforge.net:/cvsroot/peq co peq_db

Now that you have the Quests and DB downloaded, in the future if you want to get the latest version that is available, you can go into either one of these directories and type in

cvs update

This will download any changed or new files, but will save you the time of downloading any files that have not changed.


Setting up your hosts file

Adding entries in your hosts file to play the game is not technically necessary. You can hardcode IP's straight into the various config files. However the number of places you will need to edit is reduced by using a host file.

With that open up your hosts file in notepad

%windir%\system32\drivers\etc\hosts

and add the following entry

 192.168.2.71	eqs.starspark.net

"eqs.starspark.net" is a name you make up, this is just what I picked for my server, you can use that as well or make up a new name. I'll be using this name throughout the guide, so if you do change it, be sure to use your new name.

Replace 192.168.2.71 with your actual LAN IP address. You can type "ipconfig" or "winipcfg" at a command prompt (depending on which OS you have) to determine what your IP currently is.

Save the file, open up a command prompt and type

ping eqs.starspark.net

This should resolve and start pinging your IP.

Installing Everquest Titanum

You must have Everquest Titanium edition, it must be a fresh install that is not patched. So lets install that first.

After eq is installed, follow these steps to configure it.

  • Edit the eqhost.txt in your everquest install directory (probably C:\Program Files\Sony\EverQuest) and set the Host to eqs.starspark.net. Also set the port to 5999.
[LoginServer]
Host=eqs.starspark.net:5999
NOTE: Of course this won't connect you to the real starspark server, but rather the one specified in your hosts file.
  • . Make a shortcut of eqgame.exe on your desktop, right click on the shortcut, choose properties and add "patchme" (no quotes) to the end of the target filename.
"C:\Program Files\Everquest\eqgame.exe" patchme	   

That is it for the eq install and config, the client is ready.


Install Perl

Perl 5.8.8.822 is what we'll use.

If you have another version of perl currently installed

  • Backup any customizations that you need to.
  • Uninstall it via control panel.
  • Manually delete the c:\perl directory.
  • Install perl 5.8.8.822

Next type the following commands from a command prompt

ppm install DBI
ppm install IO-stringy

That is all that is needed for perl to run the server. If you get into dev you may need a different perl setup, but I'll leave that in the dev setup tutorial.


Installing MySQL

NOTE: In mysql 5.1.* they introduced a new reserved keyword 'range' into the sql language, 
unfortunately the items table in the peq database already has a field named "range".
To avoid this conflict we're using a 5.0.* version.
NOTE: This guide assumes you don't have mysql installed. If you do, please take the time
to do backups of your data before proceeding. Make sure your data is backed up properly.
(I use MySQL Administrator's Backup and Restore option to do this).

Install mysql 5.0.67 as follows:

  • Choose Custom Setup Type and Next
  • Install All options, and change the install path to c:\mysql\

It will install MySQL, show you a couple of ads and then you'll be able to "Configure the MySQL Server now" by checking a checkbox, do that now.

  • Choose Detailed Configuration, Click Next
  • Choose Server Machine, Click Next
  • Choose Multifunctional Database, Click Next
  • Click Next again for InnoDB Tablespace Settings
  • Choose Online Transaction Processing (OLTP), Click Next
  • Check Enable TCP/IP Networking making sure the port Number is 3306, Un-Check Enable Strict Mode, Click Next
  • Choose Best Support for Multilingualism, Click Next
  • Check for both Install As Windows Service ( Service name should be MySQL), and for Include Bin Directory in Windows PATH, Click Next
  • Now Enter your New Root Password, Confirm, and do not check for remote machine Access. Dont select Create An Anonymous Account. Click Next
  • Now click on Execute and wait for it to Finish. Once it is done, click Finish.


Filling up the database with info

Look in your PEQ-DB folder, you should notice a peqdb_*.sql.gz file (* will contain version info). For this example we'll assume it's named peqdb_1129Rev233.sql.gz. Anyway unzip the contents of this zip into the same directory.

From a command prompt change into the directory you downloaded PEQ-DB to, you should be in a directory with a bunch of *.sql files like aa_timers.sql, account.sql, etc..

type in

mysql -u root -p

Next type in your password you created when installing your server, this should bring you to the mysql command prompt. From here you can issue the following sql commands for your mysql server by typing them in. Make sure to press return at the end of each line.

create database peq;
use peq;
source load_player.sql;

This next source should really be whatever file you unzipped in the beginning.

source peqdb_1129Rev233.sql;
NOTE: While sourcing the files you may notice some errors popping up that say
"Can't open file 'host'" or similar messages, these can be safely ignored, the problem is
that the source command is reading through the comments of the source files when it
shouldn't be.

We'll be using minilogin, so lets record that in the database:

update variables set value = "Minilogin" where varname = "LoginType";


Create yourself an account in the database

While still in the mysql command prompt you can create an account for yourself by typing the following sql:

Insert into account (name, password, status, minilogin_ip) values ("SuperGreg", "Numba#1!!", 250, "127.0.0.1");

Of course you'll want to customize the values. The 250 is how much access the account has to GM commands and such. Use 0 for non-guide / GM's. 250 is max (access to all commands).


Minilogin

Unzip your minilogin files to c:\minilogin.

Edit c:\Minilogin\LoginServer.ini, it should look like this:

[LoginServer]
loginserver=eqs.starspark.net
loginport=5999
worldname=Starspark
worldaddress=eqs.starspark.net
locked=false
account=
password=

[WorldServer]
Defaultstatus=
Unavailzone=

[ChatChannelServer]
worldshortname=
chataddress=
chatport=

[LoginConfig]
ServerMode=StandAlone
ServerPort=5999


Installing EQEmu

As of this writing Rev222 was the latest binaries available, and the one used to create this guide.

The bots version of the server allows you to summon npcs to create groups and raids with, and there is a whole forum section dedicated to this build of the server.

1. Unzip the files you downloaded to c:\eqemu.

NOTE: Using this directory isn't required, eqemu server will run correctly from any directory.
c:\eqemu is the standard location however.

2. Copy everything in c:\eqemu\defaults\*.* to c:\eqemu, you should end up with directories like c:\eqemu\quests\, c:\eqemu\Maps, etc..

3. Copy spells_en.txt and spells_us.txt to c:\eqemu\spells_en.txt and c:\eqemu\spells_us.txt (from your everquest directory).


Installing the Map Pack files

1. Put all the maps from the larger maps file into c:\eqemu\Maps, so you end up with c:\eqemu\Maps\abysmal.map, etc..

2. Next place the new map files from the other archive into the same directory.

NOTE: 5 or so files will be overwritten when doing this.


Installing the Quest files

1. Copy the quests you checked out from cvs to c:\eqemu\quests, you should end up with folders like C:\eqemu\quests\abysmal\*. In each folder will be .pl files.

2. Amongst all of the quest folders (a bunch of short-zone names), you'll also find a directory named "plugins". The contents of the plugins folder actually belongs at c:\eqemu\plugins\ so copy those files there.


Configuring EqEmu

  • Edit c:\eqemu\eqemu_config.xml and change the values to be like the following:
<?xml version="1.0"?>
<server>
  <world>
    <shortname>Starspark</shortname>
    <longname>Star spark of the reborn dawn</longname>

    <address>eqs.starspark.net</address>
    <localaddress>eqs.starspark.net</localaddress>
    
    <loginserver>
      <host>eqs.starspark.net</host>
      <port>5999</port>
      <account></account>
      <password></password>
    </loginserver>
    
    <key>make up some random string of characters here</key>
    
    <http port="9080" enable="true" mimefile="mime.types"/>
  </world>

  <database>
    <host>localhost</host>
    <port>3306</port>
    <username>root</username>
    <password>********</password>
    <db>peq</db>
  </database>
</server>

Many of these values will already be set correctly, the ones you want to pay attention to to get things working are world.address, world.localaddress, world.loginserver.host, database.host, database.username, database.password, and database.db. The other values are just customizations.

The above is a minimal config, there are several other options that you can place in this config file. Please look at http://www.eqemulator.net/wiki/wikka.php?wakka=ServerConfiguration to see a greater list of configuration values.


Create a ServerStart.bat file

Now that everything is installed and configured, lets create up a batch file to start up the server. Create up c:\eqemu\ServerStart.bat and fill it with the following bat commands.

@echo off
Echo Starting MiniLogin Server
c:
cd c:\minilogin
start minilogin.exe
echo.
echo.

cd C:\eqemu
start world.exe
echo waiting a bit for world to finish loading...
echo.
echo.
ping -n 10 127.0.0.1 > nul

echo starting zone
start eqlaunch.exe zone
exit

Make a shortcut if desired in the same place you put the shortcut to the eq client. When this batch file is run it will start up the login server, world server and zone server. The "ping -n 10.." is just a way to get the batch script to pause for a little bit before continuing.


Play !

That should be all that is needed to play, fire up your ServerStart batch file, wait a little bit, then start the shortcut you made to the eq client to log in.

NOTE: When you start up world.exe and zone.exe, etc you might be prompted by windows firewall to 
quit blocking the program, do so and open it up, then immediately go into the firewall settings
and make sure it's only open to the local subnet, not the whole internet. But remember this
decision later if you do decide to host a public server.

There are other servers that you can play on, listed here: http://www.eqemulator.net/wiki/wikka.php?wakka=activeservers


Downgrading to Localhost only

Note that if you are not actually connected to your LAN that most likely your network card will not have it's IP address assigned. Which means any attempt by the client or server to connect to that IP will fail (read: can not connect to the login server).

To play on your local server without being connected to any network:

  1. Edit your %windir%\system32\drivers\etc\hosts file and change the IP address of your server to 127.0.0.1
  2. Edit the account table in the database and change the minilogin_ip field for the account you will log into to 127.0.0.1

To play on the LAN again, just set these values back to what they were.

Personal tools