[HELP] eAthena Login Errors

Joined
Sep 3, 2005
Messages
28
Reaction score
0
I've got somewhat of a strange issue. I'm using the most recent release (linked in the guide), but I think my main issue may be all related to the same problem. I couldn't import the "Item_DB" file due to a script error in it somewhere around the Sakray_Test_Helm entry, but I was able to download an earlier version of the Item_DB file and get it installed.

I've configured the config files to use my DNS address ( ) and have properly forwarded all ports through my router (not the first emu I've setup). I didn't activate any of the binding options in the config files, and have tried to (but just got an error) to resolve the issue.

I've got no issues with my MySQL database as the emulator seems to be reading it perfectly. I created an account, actually two, using the web interface, modified one of them to a GM account, restarted the server and watched it recognize the GM account on startup. I say that's a sucessful SQL test.

My problem is this.....

When my RO installation is set to connect through my domain name I get a "Rejected from Server" error. When my RO installation is set to my external WAN address it does the same thing. When my RO installation is set to the server's internal IP address (192.168.x.x) it allows me to create a character but then when I select the character I get a bit of a "Please Wait" screen and then it tosses me a "Failed to connect to server" error.

Here's my config files:

map_athena said:
//--------------------------------------------------------------
// Configuration Info
//--------------------------------------------------------------
// Interserver communication passwords, set in account.txt (or equiv.)
userid: ragnarok
passwd: ragnarok

// Character Server IP
// The map server connects to the character server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
char_ip:

// The map server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip:

// Character Server Port
char_port: 6121

// Map Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
map_ip:

// Map Server Port
map_port: 5121

//Time-stamp format which will be printed before all messages.
//Can at most be 20 characters long.
//Common formats:
// %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
// %H:%M:%S (hour:minute:second, 24 hour format)
// %d/%b/%Y (day/Month/year)
//For full format information, consult the strftime() manual.
timestamp_format: [%d/%b %H:%M]

//If redirected output contains escape sequences (color codes)
stdout_with_ansisequence: no

//Makes server output more silent by ommitting certain types of messages:
//1: Hide Information messages
//2: Hide Status messages
//4: Hide Notice Messages
//8: Hide Warning Messages
//16: Hide Error and SQL Error messages.
//32: Hide Debug Messages
//Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
console_silent: 0

//Where should the map data be read from?
map_cache_file: db/map_cache.dat

//Where should all database data be read from?
db_path: db

// Enable the @guildspy and @partyspy at commands?
// Note that enabling them decreases packet sending performance.
enable_spy: no

// Read map data from GATs and RSWs in GRF files or a data directory
// as referenced by grf-files.txt rather than from the mapcache?
use_grf: no

// Console Commands
// Allow for console commands to be used on/off
// This prevents usage of >& log.file
console: off

// Database autosave time
// All characters are saved on this time in seconds (example:
// autosave of 60 secs with 60 characters online -> one char is saved every
// second)
autosave_time: 300

// Min database save intervals (in ms)
// Prevent saving characters faster than at this rate (prevents char-server
// save-load getting too high as character-count increases)
minsave_time: 100

// Apart from the autosave_time, players will also get saved when involved
// in the following (add as needed):
// 1: after every successful trade
// 2: after every vending transaction
// 4: after closing storage/guild storage.
// 8: After hatching/returning to egg a pet.
// 16: After successfully sending a mail with attachment
// NOTE: These settings decrease the chance of dupes/lost items when there's a
// server crash at the expense of increasing the map/char server lag. If your
// server rarely crashes, but experiences interserver lag, you may want to set
// these off.
save_settings: 31

// Message of the day file, when a character logs on, this message is displayed.
motd_txt: conf/motd.txt

// When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands.
help_txt: conf/help.txt
help2_txt: conf/help2.txt
charhelp_txt: conf/charhelp.txt

mapreg_txt: save/mapreg.txt

// Scripts
import: npc/scripts_main.conf

// Maps:
import: conf/maps_athena.conf

import: conf/import/map_conf.txt

char_athena said:
// Athena Character configuration file.

// Note: "Comments" are all text on the right side of a double slash "//"
// Whatever text is commented will not be parsed by the servers, and serves
// only as information/reference.

// Server Communication username and password.
userid: ragnarok
passwd: ragnarok

// Server name, use alternative character such as ASCII 160 for spaces.
// NOTE: Do not use spaces in the name, or guild emblems won't work client-side!
server_name: ViperRO

// Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
wisp_server_name: vRO

// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
login_ip:

// The character server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip:

// Login Server Port
login_port: 6900

// Character Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
char_ip:

// Character Server Port
char_port: 6121

//Time-stamp format which will be printed before all messages.
//Can at most be 20 characters long.
//Common formats:
// %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
// %H:%M:%S (hour:minute:second, 24 hour format)
// %d/%b/%Y (day/Month/year)
//For full format information, consult the strftime() manual.
timestamp_format: [%d/%b %H:%M]

//If redirected output contains escape sequences (color codes)
stdout_with_ansisequence: no

//Makes server output more silent by ommitting certain types of messages:
//1: Hide Information messages
//2: Hide Status messages
//4: Hide Notice Messages
//8: Hide Warning Messages
//16: Hide Error and SQL Error messages.
//32: Hide Debug Messages
//Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
console_silent: 0

// Console Commands
// Allow for console commands to be used on/off
// This prevents usage of >& log.file
console: off

// Option to force a player to create an e-mail.
// If a player have default e-mail, and if you activate this option, the player can only connect in the game (to arrive on a map) like follow:
// - Create at least 1 character
// - Select 1 character
// - Select DEL to enter his/her e-mail. (if OK is choosen, client says to the player: 'invalid e-mail')
// - If his/her e-mail is correct, the player enter in the game (an e-mail is saved definitively).
// - If his/her e-mail is incorrect, he/she have 'incorrect e-mail' and must select again DEL.
// - After entering in the game (when the player arrives on a map), DEL and SEL/OK button work normaly for all next connections.
// Resume: If a player have "incorrect/invalid e-mail" when he/she click on 'OK' button,
// the player must click 'DEL' button and register his/her NEW e-mail to enter in the game
// So, default is 0, because administrator must explain to their players before to activate this option.
email_creation: 0

// Is Character server in maintainence mode?
char_maintenance: 0

// Enable or disable creation of new characters.
// Now it is actually supported [Kevin]
char_new: 1

// Display (New) in the server list.
char_new_display: 0

// Maximum users able to connect to the server. Set to 0 for unlimited.
max_connect_user: 200

// When set to yes, the char server will refuse connections from players already online.
// When a login attempt is rejected, the account in question will be booted from all the connected map servers.
// Note that this only works within the char-server and it's connected mapservers,
// the charserver cannot know if the same account is logged on in other char servers.
// it's safe to turn off if the char-server only has a single map-server connected to it.
online_check: yes

// Minimum GM level that is allowed to bypass the server limit of users.
gm_allow_level: 99

// How often should the server save all files? (In seconds)
// Note: Applies to all data files on TXT servers.
// On SQL servers, it applies to guilds (character save interval is defined on the map config)
autosave_time: 60

// Display information on the console whenever characters/guilds/parties/pets are loaded/saved?
save_log: yes

// Character server flatfile database
char_txt: save/athena.txt

// Friends list flatfile database
friends_txt: save/friends.txt

// Start point, Map name followed by coordinates (x,y)
start_point: new_zone01,53,111

// Starting weapon for new characters
start_weapon: 1201

// Starting armor for new characters
start_armor: 2301

// Starting zeny for new characters
start_zeny: 10

// Size for the fame-lists
fame_list_alchemist: 10
fame_list_blacksmith: 10
fame_list_taekwon: 10

// Guild earned exp modifier.
// Adjusts taxed exp before adding it to the guild's exp. For example, if set
// to 200, the guild receives double the player's taxed exp.
guild_exp_rate: 100

// Name used for unknown characters
unknown_char_name: Unknown

// To log the character server?
log_char: 1

// Log Filename
char_log_filename: log/char.log

// Allow or not identical name for characters but with a different case (upper/lower):
// example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed
name_ignoring_case: no

// Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are:
// NOTE: Applies to character, party and guild names.
// 0: no restriction (default)
// 1: only letters/symbols in 'char_name_letters' option.
// 2: Letters/symbols in 'char_name_letters' option are forbidden. All others are possibles.
char_name_option: 1

// Set the letters/symbols that you want use with the 'char_name_option' option.
// Note: Don't add spaces unless you mean to add 'space' to the list.
char_name_letters: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890

// Character rename option. When set to yes, the server will send an extended
// char-info packet, informing whether the character can be renamed or not.
// NOTE: This functionality is not implemented.
// NOTE: This option is for compatibility with kRO sakray 2006-10-23 and newer.
// !Do not use it for any other type of client since it will crash them!
char_rename: yes

// How many Characters are allowed per Account ? (0 = disabled) [SQL Only!]
chars_per_account: 0

// Restrict character deletion by BaseLevel
// 0: no restriction (players can delete characters of any level)
// -X: you can't delete chars with BaseLevel <= X
// Y: you can't delete chars with BaseLevel >= Y
// e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel)
char_del_level: 0

// What folder the DB files are in (item_db.txt, etc.)
db_path: db

//NOTE: The following online listing options are only for TXT servers.

// Filename of the file which receives the online players list in text
online_txt_filename: online.txt

// Filename of the file which receives the online players list, but in html version
online_html_filename: online.html

// Choose how to display online players.
// (sorting operation with a lot of online players can take time on a slow computer)
// 0: no sorting (default)
// 1: by alphabetical order of their name
// 2: by number of their zenys
// 3: by their base level
// 4: by their job (and job level inside the same job)
// 5: by alphabetical order of their actual map location
online_sorting_option: 1

// Choose which columns that you want display in the online files. Do the addition of these values:
// (if value is 0, no file is done)
// 1: name (just the name, no function like 'GM')
// 2: job
// 4: levels
// 8: map name
// 16: mapname and coordonates
// 32: zenys
// 64: name (with 'GM' if the player is a GM)
// default value: 1 (only name)
online_display_option: 7

// minimum GM level to display 'GM' when we want to display it (default: 1)
online_gm_display_min_level: 20

// refresh time (in sec) of the html file in the explorer (default 20)
online_refresh_html: 20

import: conf/import/char_conf.txt

subnet_athena said:
// Subnet support file
// Format is:
// subnet: net-submask:char_ip:map_ip
// you can add more than one subnet

subnet: 255.255.255.0:192.168.1.25:192.168.1.25

A final note, I do see the servers communicating. When I try to connect there are visible additions to both the login and character server screens that show the attempted connection. There is, however, nothing to show why the connection was rejected or failed.

Hope you can help.

P.S. Is there any way to change the access logins in the emu? Even if I set both config files to use my default MySQL root login and password it still tries to use ragnarok/ragnarok when I fire it up... I see this as a huge security hole, since that login has full administrative access to the database and EVERYONE knows it.
 
I haven't done Ragnarok in a while, but I would like to ask:

"I've configured the config files to use my DNS address (Viper01.COM) and have properly forwarded all ports through my router (not the first emu I've setup)"

Are you sure about this? You said this isn't the first emu you've set up, but is this the first time you've done ragnarok online? There is a tool online that will allow you to check if your ports are actually open or not. I recommend you check that first. Second,

// Character Server IP
// The map server connects to the character server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
char_ip: Viper01.COM

That can be set to your local IP because it is connecting from the map to char server (which I assume is on the same computer) This will minimize your chances of unsuccessful connections.

Same can be said for:
// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
login_ip: Viper01.COM

Finally, check your client to see if you set everything up correctly there.

I need to brush up on my RO Server stuff (I've been focusing mainly on gunbound lately) and I'll try to get back to you as soon as possible.
 
Thanks for the input, I'll try it out and see what happens. In response to your other questions, no I have hosted Ragnarok before but like you I'm out of practice. The last Ragnarok EMU I ran was Ludmilla, with Chris (used to be a close friend) as the project designer, back before they used SQL databases.

I have (and do) run WoW servers though, that use SQL, as well as others (Like Earth and Beyond) which do as well. Most Emu's have roughly the same setup, specifically when there are multiple servers (Login, World, etc.) making up the Emu.

Ports are forwarded properly, I'm not new at doing that either, unless for some reason the ports that the servers talk to themselves on are different than the 3 that the users would use to connect.

Once again, thanks for the input. I'll test it out, if only to say that I've done it, and see if it works.


EDIT

Tried using the internal IP address, didn't work. I even tried using the local loop back address (127.0.0.1) which failed as well. I get the exact same symptoms I'm getting when using my domain name. I also tried a full & clean install of RO on another PC in my house, which has never had RO on it. Same issue.

Thanks for the help, if you think of anything else feel free.
 
Last edited:
Think i just figured it out.
Go to your
login_athena.conf file

find this:
Code:
// Indicate the IP that the server accept.
// put: 'all', or 'xxx.xxx.' (begin of an ip finished by '.' or a complete ip),
//      or a network and its mask (example: '123.456.789.012/24' or '123.456.789.012/255.255.255.0')
//      or 'clear' to suppress previous parameter (use it in import file mainly)
// Add as many IP's as you wish.
[COLOR=Red]//[/COLOR]allow: all

replace with

Code:
// Indicate the IP that the server accept.
// put: 'all', or 'xxx.xxx.' (begin of an ip finished by '.' or a complete ip),
//      or a network and its mask (example: '123.456.789.012/24' or '123.456.789.012/255.255.255.0')
//      or 'clear' to suppress previous parameter (use it in import file mainly)
// Add as many IP's as you wish.
allow: all
 
Back