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

  • DuFErnst

    Do you know if your external ip is static or dynamic?

  • TheWarpDragon

    okay im having another go at an endless online server but when i click on the third download, sqlite for the database it just says that the file is missing :/

  • DuFErnst

    Going to reupload it ;), my old school finally decided they didn’t want to host anything for old students.

  • Herpyderp

    SO I just set up My server and I was wondering how do I change the exp rate and the item drop rate? I can’t find where I change that and I’m kinda running this server with a couple of friends. If you do know thanks!

  • DuFErnst

    ## RATES ##

    ## ExpRate (number)
    # Rate that exp is gives at
    ExpRate = 100%

    ## DropRate (number)
    # Rate that items are dropped at
    DropRate = 100%

    those settings can be found @ the bottom of the config.ini file.

  • Herpyderp

    Alright Thanks! Server setup went smoothly. Everything is running good. Good job on the tutorial for setting up the server.

  • Herpyderp

    One more quick thing. Monsters don’t seem to be dropping anything. I increased the drop chance and still nothing. Where should I look to fix this?

  • Herpyderp

    also one last thing. I can’t seem to talk to npcs. I can just kill them. >.>

  • DuFErnst

    Well the clean EOSERV doesn’t feature all the original content, but you can find drops/talking npc stuff on the eoserv forum.

  • Herpyderp

    Ok I got it all working now. NOW TIME TO EDIT THE GAME! Thanks for the great guide.

  • James

    Hello i did everything you said and now i have this error Compiling: ..\src\database.cpp
    In file included from C:\Users\Us!\Downloads\Desktop\eoserverfiles\eoserv-trunk-r229\trunk\src\database.cpp:14:0:
    C:\Users\Us!\Downloads\Desktop\eoserverfiles\eoserv-trunk-r229\trunk\src\database_impl.hpp:12:19: fatal error: mysql.h: No such file or directory
    compilation terminated.
    Please Help Me Thankyou In Advance

  • DuFErnst

    Do you have the file mysql.h in the trunk/src folder?
    If not, did you follow step 4 and 5?
    If you do have that file there, did you correctly follow step 6?

  • James

    Nope I don’t have it

  • James

    i think i got it now thankyou, I just added the folder and not the contense in part 4 and 5

  • James

    Scratch that do you have msn to help me ?

  • James

    i get this error Checking for existence: C:\Users\Us!\Downloads\Desktop\eoserverfiles\eoserv-trunk-r229\trunk\eoserv.exe
    Executing: “C:\Program Files\CodeBlocks/cb_console_runner.exe” “C:\Users\Us!\Downloads\Desktop\eoserverfiles\eoserv-trunk-r229\trunk\eoserv.exe” (in C:\Users\Us!\Downloads\Desktop\eoserverfiles\eoserv-trunk-r229\trunk\project\..)
    Process terminated with status 1 (0 minutes, 11 seconds)

  • DuFErnst

    When do you get this error?
    Which step?

  • Joannie

    hello,
    if there is any future questions may i have your email , aim , and or msn so i can contact you other than commenting on this ? but excellent guide though ! (:

  • DuFErnst

    If post a comment with your msn, I’ll add you. (I will trash the comment ofcourse to prevent spam bots to get a hold of it ;))

  • Hikari

    Hey, I love this guide, its amazing. One problem, I’ve gotten up to step 19. and after that, i have no idea what i’m doing. I have a trendnet router, i went to it, and I’m not 100% sure but i think i portforwarded it.. then what?.. :/

  • DuFErnst

    Then everything should be working :) people should be able to connect to your server if you give them your external ip.

  • Mr Bumbles

    Ok sworry for been a complete noob with these sort of things, but when i run codeblockers and select the “mingw.cbp” it seems to find it fine but when i do all the other stuff todo with project and then build it just says “eoserv – DEBUG+MYSQL+SQLITE” uses an invalid compiler. Skipping…
    Nothing to be done.

    I know i did something wrong, but what? I don’t know…

  • DuFErnst

    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

  • Mr Bumbles

    Yeah cheers worked now, don’t know what i had wrong but i deletelded everything and started from scratch and it it worked :)

  • DuFErnst

    Nice, good to hear, good luck with your server.

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...