EO Private Server setup Guide

Ill try to explain and get you ready to compile and host your own Endless Online Private Server.

THIS GUIDE IS FOR THE LATEST SOURCE CODE AVAILABLE NOW v229.

epicduf.nl is not responsible for content of external internet sites. epicduf.nl is not responsible for the availability of such third party web sites. The content of such third party web sites is beyond our control.
Any file available on third party websites is the responsibility of those sites and not epicduf’s. We have no knowledge of whether content available on third party websites is or is not authorized by the content owner as that is a matter between the host site and the content owner.

PLEAS support the old endless online host, don’t skip the advertisement when starting Endless Online.

Oke I’ll start with the guide itself :)

You’ll need the following program’s I suggest you download all files to a folder with the name eoserverfiles.
Codeblocks download HERE.
The compiler we are going to use. Download HERE.
Everything you need for your database, download HERE.
The eoserver source download HERE!(It’s always best to use the latest revision)
Other needed files, download HERE. (some map files in the data/maps folder are copies of other maps)

Oke, now that you have all those files.

1. Install codeblocks.

2. Install the compiler. I recommend to install it in the directory mingw(So if you install codeblocks in C:\Program Files\CodeBlocks then install mingw to the directory C:\Program Files\CodeBlocks\mingw) Codeblocks will in most cases recognize the compiler without any help, if you get compile errors, try the following:
go to settings -> compiler and debugger…
select the tab toolchain executables
set the path to the place you installed the compiler to

3. Unzip the source you downloaded from eoserv.net. To follow the other steps of this guide you should have the trunk folder in the earlier created eoserverfiles.

4. Oke, now unzip the neededfiles.zip and place all the files including the data and src folder in the trunk folder from earlier.

5. Now every file you’ll need is in place. Now open the map trunk/project. And then project open the mingw.cbp file with codeblocks.

6. Now we are going to setup codeblocks, to make sure the compile goes smoothly.
A1: Go to project in the top menu, then chose build options.
A2: Go to the tab “Search directories”.
A3: Go to the sub tab “Linker”.
A4: Choose Add -> Browse to the directory “src” (this folder can be found in the trunk folder) -> Press Ok -> We don’t care about relative path (so you are free to choose no/yes). -> Press Ok -> Click Ok in the lower part of the build options frame.
B: In the buildtoolbar, you see BUILD TARGET. Set to the one you want (as long as it includes SQLITE, it will work for this guide)
C: Go in the top menu to build and chose there build.
D: In the build log that can be found at the bottem shows when its finished. Just give codeblocks the time to compile. (You can see errors/warnings there, if they happen to occur)
E: Now you can find in the trunk folder the eoserv(-debug).exe file. (If so you’ve finished the first part of this guide)

7. Now unpack the SQLITE.zip, doesn’t matter to me where but somewhere you can find it.

8. The only file you find interesting is SQLite Database Browser.exe I suggest you start it.

9. In the top menu go to file and click new database. Give it a name you can remember something like eoservdatabase and save it in again the trunk map.

10. Now it will ask you to create a table just click cancel.

11. Go to the tab execute SQL. (You can find an already complete database inside your trunk map. Named eoservDB but I do recommend to follow these steps yourself, for the sake of knowing your server)

A: First execute this:

CREATE TABLE IF NOT EXISTS `accounts`
(
`username` VARCHAR(16) NOT NULL,
`password` CHAR(64) NOT NULL,
`fullname` VARCHAR(64) NOT NULL,
`location` VARCHAR(64) NOT NULL,
`email` VARCHAR(64) NOT NULL,
`computer` VARCHAR(64) NOT NULL,
`hdid` INTEGER NOT NULL,
`regip` VARCHAR(15) NOT NULL,
`lastip` VARCHAR(15) DEFAULT NULL,
`created` INTEGER NOT NULL,
`lastused` INTEGER DEFAULT NULL,

PRIMARY KEY (`username`)
);

B: now this:

CREATE TABLE IF NOT EXISTS `characters`
(
`name` VARCHAR(16) NOT NULL,
`account` VARCHAR(16) DEFAULT NULL,
`title` VARCHAR(32) DEFAULT NULL,
`home` VARCHAR(32) DEFAULT NULL,
`fiance` VARCHAR(16) DEFAULT NULL,
`partner` VARCHAR(16) DEFAULT NULL,
`admin` INTEGER NOT NULL DEFAULT 0,
`class` INTEGER NOT NULL DEFAULT 0,
`gender` INTEGER NOT NULL DEFAULT 0,
`race` INTEGER NOT NULL DEFAULT 0,
`hairstyle` INTEGER NOT NULL DEFAULT 0,
`haircolor` INTEGER NOT NULL DEFAULT 0,
`map` INTEGER NOT NULL DEFAULT 192,
`x` INTEGER NOT NULL DEFAULT 7,
`y` INTEGER NOT NULL DEFAULT 6,
`direction` INTEGER NOT NULL DEFAULT 2,
`level` INTEGER NOT NULL DEFAULT 0,
`exp` INTEGER NOT NULL DEFAULT 0,
`hp` INTEGER NOT NULL DEFAULT 10,
`tp` INTEGER NOT NULL DEFAULT 10,
`str` INTEGER NOT NULL DEFAULT 0,
`int` INTEGER NOT NULL DEFAULT 0,
`wis` INTEGER NOT NULL DEFAULT 0,
`agi` INTEGER NOT NULL DEFAULT 0,
`con` INTEGER NOT NULL DEFAULT 0,
`cha` INTEGER NOT NULL DEFAULT 0,
`statpoints` INTEGER NOT NULL DEFAULT 0,
`skillpoints` INTEGER NOT NULL DEFAULT 0,
`karma` INTEGER NOT NULL DEFAULT 1000,
`sitting` INTEGER NOT NULL DEFAULT 0,
`bankmax` INTEGER NOT NULL DEFAULT 0,
`goldbank` INTEGER NOT NULL DEFAULT 0,
`usage` INTEGER NOT NULL DEFAULT 0,
`inventory` TEXT NOT NULL,
`bank` TEXT NOT NULL,
`paperdoll` TEXT NOT NULL,
`spells` TEXT NOT NULL,
`guild` CHAR(3) DEFAULT NULL,
`guild_rank` INTEGER DEFAULT NULL,
`quest` TEXT NOT NULL,
`vars` TEXT NOT NULL,

PRIMARY KEY (`name`)
);

C: Now this:
CREATE TABLE IF NOT EXISTS `guilds`
(
`tag` CHAR(3) NOT NULL,
`name` VARCHAR(32) NOT NULL,
`description` TEXT NOT NULL,
`created` INTEGER NOT NULL,
`ranks` TEXT NOT NULL,
`bank` INTEGER NOT NULL DEFAULT 0,

PRIMARY KEY (`tag`),
UNIQUE (`name`)
);

D: Now this:
CREATE TABLE IF NOT EXISTS `bans`
(
`ip` INTEGER DEFAULT NULL,
`hdid` INTEGER DEFAULT NULL,
`username` VARCHAR(16) DEFAULT NULL,
`setter` VARCHAR(16) DEFAULT NULL,
`expires` INTEGER NOT NULL DEFAULT 0
);

E: Now this:
CREATE INDEX `character_account_index` ON `characters` (`account`);

F: Now this:
CREATE INDEX `character_guild_index` ON `characters` (`guild`);

G:This…
CREATE INDEX `ban_ip_index` ON `bans` (`ip`);

H: This…….
CREATE INDEX `ban_hdid_index` ON `bans` (`hdid`);

I: And the last line
CREATE INDEX `ban_username_index` ON `bans` (`username`);

12. Now save your database.

13. Now open your config.ini found in your trunk map.

## Port
# The port the server should listen on
Port = 8078 (normally 8078 you could take a different port)

## PasswordSalt
# Enter any large amount of random characters here
# WARNING: Changing this will break any existing users’ passwords.
PasswordSalt = make it anything you want (every time you get a new config .ini this salt has to be the same)

### DATABASE ###

## DBType
# Database type (mysql or sqlite)
DBType = sqlite

## DBHost
# MySQL hostname / SQLite filename
DBHost = the file name you had chosen in step 9.

14. Now save your config.ini

15. Now start eoserv(-debug).exe if you did everything I should just be running no errors.

16. Start the eosetup thing. Change the server-ip to localhost and the port should be the port you had chosen in step 13.

17. Start Endless Online don’t skip the advertisement and create a account.

18. I guess you want to be admin you can do that with SQLite Database Browser.exe Go to the tab browse data. Select the character table. And fill in the field admin the number 4. That is the highest GM rank you can have.

19. Now start Endless Online again and play with your uber GM character. You can find the admin commands in admin.ini.

HOW TO make your server public!
Oke the only way I can explain this is.
1. Your ignore the no-ip, we don’t care about a fancy url.
2. You go to portforward.com/ and copy your external IP.
3. Now go to start -> and use execute -> execute cmd.exe.
Now type there ipconfig and press enter.
Now go to your Ethernet-Adapter LAN connection.
Now write down the ip from the standard-gateway.

Oke now remember that IP and open your browser. (Firefox FTW) and type that IP where you normally would write a site address most probably normally epicduf.nl. :P

Oke after you typed it press enter…..
Now you are at the spot to change your router settings.
Now there should be NAPT somewhere or game options in some routers.
Open the TCP and UDP passage on the port you had chosen to let your eoserver listen on.
4. Note that your external IP isn’t interesting now.
5. In step 3 your opened ports udp and tcp. You want them to be on YOUR INTERNAL IP. So look up your own IP the same way you did in step 3.
6. To be more precise about step 3. You open port 8078 for tcp and udp internal IP should be the one from step 5. The external IP should be 0.0.0.0 to allow any IP to connect.
7. Now go to the EO setup thing chose the right EXTERNAL IP and the right port and connect when the server is running of course.

1132 Comments for this entry

Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...