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.
July 23rd, 2011 on 10:33
Nice guide! I just don’t get why I can’t use no-ip??
July 28th, 2011 on 10:02
after clicking eoserv ( – debug ). exe, I get
1. [ Wrn ] configuration include file not found: config.local.ini
2. [ Wrn ] configuration include file not found: admin.local.ini
Why is this happening?
July 28th, 2011 on 16:38
@Wireless ofc you could use no-ip but people tend to not understand portforwarding/ip’s. I’d rather try to let them work with ip’s to give a basic understanding of how that works then yet again use some easy workaround.
@aku because those files aren’t found. You could create them to make the warning disappear. But the server should run without them.
August 6th, 2011 on 07:49
I keep getting an error trying to build with codeblocks
ld.exe||cannot find -lmysql|
ld.exe||cannot find -lsqlite3|
||=== Build finished: 2 errors, 0 warnings ===|
August 7th, 2011 on 02:43
You did successfully complete step 6A(1,2,3)?
August 7th, 2011 on 21:47
This guide is perfect :DD Everything worked the first time trying, for me…
but there a some points missing :/
The Server runs perfect, but you cant buy skillz, you cant choose class, you cant warp, you cant set new home,… I tried to edit the skilz.ini, the home.ini, and and and, but nothing worked … So can you probably write a guide for skill menus, warp menus, class menus and Quests?
(sorry for bad english)
August 8th, 2011 on 12:56
I’m sure there are guides for those features on the eoserv forum. If you can’t seem to find them ask again here, then I will take a look :)
August 11th, 2011 on 13:01
Where my Ethernet adapter LAN connection thing it doesnt have a standard gateway it only says:
Media State………..:Media Disconnected
Connection-specific DNS suffix
Do I use the Wirless LAN connections ip?
please help!
August 11th, 2011 on 16:00
Could you give me the wireless info? Like your wireless ip, the subnetmask etc etc.
August 12th, 2011 on 00:56
IPv4: 192.168.1.174
Subnet Mask: 255.255.255.0
Default gateway: 192.168.1.1
Hope this helps
August 12th, 2011 on 01:01
But when I put the gateway from the Wireless LAN connection in the web address bar, it says I need a username and password, i don’t know either of them.
August 12th, 2011 on 17:27
Hmmm you can find the default username and password on the internet. If someone changed the password and/or username then you should ask him/her.
November 17th, 2011 on 11:44
Whenever i click the eoserv-debug it gives me
[ERR] A required table is missing. (Have you executed install.sql?)
[ERR] no such table: accounts
But i executed everything you said
i even tried the database you already had!
November 17th, 2011 on 21:00
Did you execute:
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`)
);
??
November 17th, 2011 on 21:04
And does your config point to the right DB?
With sqlite?
December 8th, 2011 on 17:45
Would we be able to use Mysql instead of sqlite? or is that mandatory?
December 9th, 2011 on 02:23
You could use mysql, only it’s not covered in this guide. If you would have questions about it, I’m familiar with mysql so don’t mind asking me.
gl with setting up your own server
December 21st, 2011 on 17:13
Hey nice guide, i think i am almost done, can you explain step 11 better, it says you can find an already complete database inside your trunk map, so do we have to put the codes listed above or we can skip the step?? please reply
-thank you
December 21st, 2011 on 19:58
Well I have to update the provided DB again, so for now you would have to generate your own database.
You can find the file install.sql in your trunk map you have to execute that on your desired DB.
December 30th, 2011 on 00:33
best tut ever
January 30th, 2012 on 10:46
Warning: An NPC on map 182 at 15,25 is being placed by linear scan of spawn area
Error: NPC couldn’t spawn anywhere valid!
Warning: An NPC on map 250 at 132,36 is being placed by linear scan of spawn area
Error: NPC couldn’t spawn anywhere valid!
Warning: An NPC on map 250 at 132,36 is being placed by linear scan of spawn area
Error: NPC couldn’t spawn anywhere valid!
that is what my error log shows when just bringing up eoserv.exe..it seems to not do much since i can connect to my server and create an account, but when i go to create a character. as soon as i click create it crashes and the error log gives me this:
Client caused an exception and was closed: 127.0.0.1.
Database_QueryFailed: characters.quest may not be NULL
any help?
January 30th, 2012 on 14:01
Hmm could you delete the current DB? The latest revs of eoserv have an inbuild DB creator, that will create the DB if it doesn’t exist.