Endless Online Server Setup Guide
Using SQLITE
Problems
I've been noticing a lot of people having problems. I tried to make this tutorial as descriptive as possible but I guess it's just not good enough.
Be sure to check the following:
- In your config.ini, under ## SLN ##, SLN = 1 has been changed to SLN = 0
- Your database (file you made in SQLite Database Browser) is in the same folder as all the other files.
- When making the database, before putting in the next script, you get rid of the old one.
- Your host IP address is 0.0.0.0 (don't change it, apparently it's not supported yet, so just leave it).
If you've thoroughly checked all of these and you still have problems, or you don't understand one of them,
add me on MSN Messenger or email me at: gotmilk8437@hotmail.com
This tutorial is very easy to follow and virtually newb-proof. I don't get why you people can't follow instructions properly. Read this tutorial CAREFULLY (as with any other tutorial you ever read, use that as a life lesson) and do not skip any steps if you get any sort of problem, no matter how small, it can cause bigger errors in the longrun.
Please, feel free to ask questions, that's what I'm here for.
Introduction
This guide will show you how to setup an Endless Online private server. You also don't have to compile, as this server is pre-compiled for you, which means no headaches.
Requirements
SQLite ---> Download
EOServ Rev 134 ---> Download
WinRAR (or WinZIP) ---> Download
If any links are broken (they shouldn't be) let me know, I'll upload the files myself.
Setting Up
May I suggest making a folder on your desktop (something like EO Private Server Files) for easier access to your files.
Inside that folder (if you made one) make two new folders. One for you server files and one for SQLite (it's zipped so your going to have to extract it yourself). We'll refer to them as the SQLite folder and the Server Files folder.
Extract all files from the SQLite zip to your SQLite folder.
Extract all files from the EOServ Rev 134 zip to your Server Files folder.
Making The Database
Go into your SQLite folder and open the SQLite Database Browser.
Now go to File, then New Database.
Name it something simple like "database" or "eoservDB" something you'll remember.
Save in your Server Files folder.
A window should pop up asking you to start creating tables, just press cancel.
Now go to the tab Execute SQL.
First, paste this into the top box:
Code:
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` CHAR(10) NOT NULL,
`regip` VARCHAR(15) DEFAULT NULL,
`lastip` VARCHAR(15) DEFAULT NULL,
`created` INTEGER NOT NULL,
`lastused` INTEGER DEFAULT NULL,
PRIMARY KEY (`username`)
);
Then press Execute query.
It should say "No error" below.
Now remove the text from the box.
Second, paste this in:
Code:
CREATE TABLE IF NOT EXISTS `characters`
(
`name` VARCHAR(12) NOT NULL,
`account` VARCHAR(16) DEFAULT NULL,
`title` VARCHAR(32) DEFAULT NULL,
`home` VARCHAR(32) 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,
`spawnmap` INTEGER NOT NULL DEFAULT 192,
`spawnx` INTEGER NOT NULL DEFAULT 7,
`spawny` INTEGER NOT NULL DEFAULT 6,
`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 20,
`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,
PRIMARY KEY (`name`)
);
Press Execute query. It should still say "No error" below. Third, paste this in:
Code:
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`)
);
Fourth, paste this in:
Code:
CREATE INDEX `character_account_index` ON `characters` (`account`
);
Fifth, and lastly, paste this in:
Code:
CREATE INDEX `character_guild_index` ON `characters` (`guild`
);
Now press the save button at the top:

Close SQLite, we're done here.
Configurating
Go into your Server Files folder and open the config.ini file.
Look for: ### SERVER ###
From there, scroll down till you find:
## PasswordSalt
# Enter any large amount of random characters here
# WARNING: Changing this will break any existing users' passwords.
PasswordSalt = ChangeMe <-------- Change that to whatever you like.
Now, under: ### DATABASE ###
Change the following:
## DBType
# Database type (mysql or sqlite)
DBType = mysql <-------- Change to sqlite
## DBHost
# MySQL hostname / SQLite filename
DBHost = localhost <-------- Change to your what you named your database in SQLite.
Now, under: ## MISC ##
Change the following:
## StartItems
# Items a charater should start with
# Syntax: id,amt;id,amt; (must end with semicolon if used)
StartItems = <-------- Put a 0 there (I'll teach you how to edit that later).
## StartSpells
# Spells a charater should start with
# Syntax: id,level;id,level; (must end with semicolon if used)
StartSpells = <-------- Put a 0 there as well.
Save and close.
Running The Server
Run eoserv.exe.
Now go to where you installed Endless Online (the actual game).
Open econfig.exe.
Change the ip to 127.0.0.1 and click Save.
Now run the game like you normally would and create an account. Then login, make a character, and play!
**Keep in mind that only the basic shops in Aeven work on this, it's still in development so wait for later revisions or simply add more shops yourself (I'm not writing a tut for it!)
Customizing Your Server
I'll teach you a little bit (a LITTLE BIT, not EVERYTHING) on customizing your server.
To change the news, go into the data folder and open news.txt, change to your liking.
To edit items you start with, go back into your config.ini again.
Find the following:
## StartItems
# Items a charater should start with
# Syntax: id,amt;id,amt; (must end with semicolon if used)
StartItems = 0
Replace the 0 with items in this format: id,amt;id,amt; <------ Always have ; at the end!!
**The comma separates the item id from the amount of it.
**The semicolon must be placed at the end of each item.
**Don't add too many items, remember you can't fit that many in your inventory!
CLICK HERE FOR ITEM IDS (the numbers in parentheses are the IDs)
To edit rates (exp rate, etc.), go into config.ini.
Find the following:
## RATES ##
## ExpRate
# Rate that exp is gives at (%)
# 200 is 2x, 1000 is 10x etc.
ExpRate = 100 <-------- Change this to the rate (it works as a %, 100 is 1x or 100%)
## DropRate
# Rate that items are dropped at (%)
# 200 is 2x, 1000 is 10x etc.
DropRate = 100 <-------- Change this to the rate (it works as a %, 100 is 1x or 100%)
## MobRate
# Globaly control general strength of all monsters (%)
# 200 is 2x, 1000 is 10x etc.
MobRate = 100 <-------- Change this to the rate (it works as a %, 100 is 1x or 100%)
## SpawnRate
# Globally control spawn speed of all monsters (%)
# 200 is 2x, 1000 is 10x etc.
SpawnRate = 100 <-------- Change this to the rate (it works as a %, 100 is 1x or 100%)
For everything else, look around in the config.ini file but pay VERY CLOSE attention to the notes after the # signs above the value, if it says something like "Shouldn't supass 65k" then IT SHOULDN'T! SO DON'T LET IT!!!
Making Yourself An Admin
Open SQLite Database Browser (after you've made your account, then made your character) and open your database.
Go to the Browse Data tab and change where it says accounts to characters.
Find your character name, then on that line, under "admin" it should say 0.
Double click the 0 and a window should pop up, replace it with:
1 = Light Guide
2 = Gaurdian
3 = Game Master
4 = High Game Master <-------- That should be YOU!
You can also change your stats here, but dont change HP and TP, thats not your MAX health that's just your current health, so if you make it 500 it will be 500/10 and the game will glitch so DON'T DO IT IT'S JUST A BAD IDEA!
If you want to raise your health edit your con.
If you want to raise your mana edit your int.
I wouldn't go over 1000 with any stat, that's where the game starts to get buggy.
After all editing is done, click the save button again.
Giving Yourself Items (because I know you want to)
You'll need to do this while playing (with a command).
Here's the format of it: $sitem [item id] [amount]
So for instance, say you wanted 1mil gold. Here's what you type in the chat:
$sitem 1 1000000
It should say "You picked up 1000000 gold" at the bottom, as if you picked it up off the ground.
Click Here For Item IDs (numbers in parentheses are the IDs)
Going Public
To make your server public, you need to forward the port 8078. Go to http://portforward.com/ and choose your router model and follow the steps.
Then either make a no-ip or give people your actualy IP (not too safe unless you're just playing with trusted friends).
If you can't portforward, hamachi is always an option, but anyone who plays will have to download it as well and connect to you.
Anyways, put either your no-ip, your actualy ip address, or your hamachi ip address into the endless online config and save (like you did before with 127.0.0.1) and have all your players do that as well. Then simply play like you normally would!
***I'll write a full tutorial on going public another time, I'm too tired now, sorry guys.
Credits
Sausage -- for making EOServ.
Sambro -- for hosting a pre-compiled server.
Me -- for writing this tutorial.
Hope this helps! Any questions please reply and I'll see if I can answer them.
EDIT: I've written a tutorial on the basics of PubEdit, it's a wonderful program that can do a lot of editing for your server. Read this tutorial carefully.
PubEdit Tutorial
First, download
PubEdit 1.3. Now, before you start editing anything, I suggest you backup your files, if you put the wrong values in the wrong places your pub files may get corrupted and when you login to the game NPCs will be invisible or buildings will be invisible or your character and all others will be invisible. So before you mess up your pub files, go to your data folder, then your pub folder. Now make a new folder in there, let's call it backups. Now copy all four pub files and paste it into your backups folder. Now if any pub file gets corrupted you can simply replace it with a clean one from your backups folder.
Now that you've done all that go ahead and open up PubEdit. Then go to File at the top, and click Open (or press CTRL+O). Navigate to your pub folder again. Now look at the bottom right where it says Endless Class File (*.ecf) and change it. If you want to edit Items choose the Item file, if you want to edit NPCs choose the NPC file, I wouldn't edit the other two. You really don't need to anyway.
Firstly, you can order the list by whatever column you want. That's how I figured all of this out. By comparing what types of items have similar values and determining what they mean.
Okay lets start with
Items. I'll explain all the columns that I know.
ID = The ID number of the item (dont mess with that)
Name = Name of the weapon
ICO = The icon number of the weapon (what it looks like, basically, don't mess with that)
TYP = Type of item, potion, equip, etc.. (dont mess with that either unless you know what you're doing)
EQI = Equip, armor, boot, hat, etc..
UNI = Not sure what it stands for, but you can use this to make lore items normal, or cursed items uncursed. All 4's are lores, all 5's are cursed. Set to 0 to make them normal.
HP = HP this item adds when you put it on.
TP = TP this item adds when you put it on.
M... = Minimum damage done (usually weapons only)
MxD = Maximum damage done (usually weapons only)
ACC = Accuracy this item adds
EVA = Evasion this item adds
DEF = Defense this item adds
--- = I have absolutely no idea, just leave it be
STR = Strength this item adds
INT = Intelligence this item adds
WIS = Wisdom this item adds
AGI = Agility this item adds
CON = CON this item adds
CHA = CHA this item adds
LR = If anybody knows this, please tell me.
DR = If anybody knows this, please tell me.
ER = If anybody knows this, please tell me.
AR = If anybody knows this, please tell me.
WR = If anybody knows this, please tell me.
FR = If anybody knows this, please tell me.
SP1 = Location in the gfx file (don't worry about that)
SP2 = Location in the gfx file (don't worry about that)
SP3 = Location in the gfx file (don't worry about that)
--- = I'm not sure but I think it's level requirement because the only number is 3 on Sai, which requires level 3 to wear, so that's my best guess.
CLR = Class requirement, you should change all these to 0, because classes aren't supported in eoserv yet.
SRR = I really don't know this either, if someone does please let me know.
ITR = I really don't know this either, if someone does please let me know.
WSR = I really don't know this either, if someone does please let me know.
AIR = I really don't know this either, if someone does please let me know.
CNR = I really don't know this either, if someone does please let me know.
CAR = I really don't know this either, if someone does please let me know.
--- = I really don't know this either, if someone does please let me know.
--- = I really don't know this either, if someone does please let me know.
WT = I believe this stands for weight, not like you'd want to edit that anyway.
--- = Don't know, if someone does tell me please.
SZE = Size, the maximum for this should be 7 (means it takes up 8 spaces in your inventory, like the TB)
Just click the number you want to change, and then change it, when all changes have been made go to File and then Save (or press CTRL+S).
Now for NPCs, here's all the values I know.
ID = ID number of the NPC (don't change that)
Name = Name of the NPC
GFX = ID of the GFX this NPC uses (what it looks like, don't change that)
--- = I wish I could tell you but I don't know, leave it as 0 I guess.
PRT = Don't know, seems only the Apozen Overlord, Anundo Leader, and Octopus have 1's for this. Any ideas?
CHD = Again I don't know, only Apozen's Taraduda, Tentacle, and Ninja Guard have 1's for this. Any ideas?
NPC = Type of NPC this is. 15 is for quest NPC, 14 is for spell carriers, 13 is just law bob, 12 is just priest, 11 is for guilds, 10 is for barbers, 9 is for banks, 7 for innkeepers, 6 is for shops of any type, 2 is for combatable monsters, 1 seems to also be for combatable monsters, and 0 is for non interactable NPCs. The only things I would really change here is making a number 6 if you want to add shops, like for the people in Aeven Square (Wise Man, Hactor, Dan, etc..).
--- = Sorry, not a clue. Anyone knows?
HP = HP this NPC has, only change this for combatable monsters (Dragons, Apozen, Spiders, etc..).
--- = Sorry, not a clue. Leave as 0 I guess.
ACC = Accuracy this NPC has
EVA = Evasion this NPC has
DEF = Defense this NPC has
M... = Minimum damage this NPC does (whenever I edit this it doesn't seem to work, I'm hoping to contact Rena, the maker of pubedit, and ask if she ever plans to fix this)
MxD = Maximum damage this NPC does (whenever I edit this it doesn't seem to work, I'm hoping to contact Rena, the maker of pubedit, and ask if she ever plans to fix this)
--- = No clue, any ideas?
--- = No clue, any ideas?
--- = No clue, any ideas?
--- = No clue, any ideas?
--- = No clue, any ideas?
--- = No clue, any ideas?
EXP = Experience this NPC gives when killed. (Tends to get buggy if you put this too high, if you want more exp from monsters, just edit your exprate and only slightly change these numbers)
I hope this tutorial helps. I will update with a CodeBlocks tutorial another time. Please leave some feedback on this, I'll help you any way I can.
P.S. -
BACKUP YOUR PUB FILES BEFORE YOU EDIT! I CAN'T STRESS THIS ENOUGH! I DON'T WANT TO HEAR COMPLAINTS ABOUT CORRUPTED PUB FILES IF YOU FORGOT TO BACK THEM UP! DO IT!!!
Also, if you have a specific task you would like to perform with PubEdit, but my tutorial didn't explain it well enough for you, please let me know.