OpenKore/VisualKore needs the following information about the Ragnarok Online server before it can login:
All RO clients have one or more .grf files. Those files are archives which contains information the client needs, and probably contains information about the server too.
1. Download GRF Tool. You need this to read .grf files.
2. Find the .grf files in your RO client's folder. (like C:\Program Files\Gravity\RagnarokOnline)
3. Open one of the .grf files using GRF Tool. It doesn't matter which one.
4. In GRF Tool's search box, type:
clientinfo.xml
You should now see a file named clientinfo.xml or sclientinfo.xml in the file list. Click on it; the preview pane will show it's contents. If you don't see (s)clientinfo.xml in the file list, then try a different .grf file!

Example: GRF Tool displaying iRO's clientinfo.xml
4.1. In case that you are playing in a private server some of them puts their sclientinfo.xml in the data folder, therefore you can skip step 1-4 also you can edit sclientinfo.xml by using notepad.
5. Look for a line called
<address>x.x.x.x</address>
The text between <address> and </address> is the address of the server. Note: if the address 127.0.0.1 then your server is probably using some kind of proxy, like FoxDye. If your (s)clientinfo.xml doesn't contain an address field, then look in other .grf files!
6. Look for a line called
<port>xxxx</port>
The text between <port> and </port> is the port number of the server.
Now that you have the address and port of your server, it's time to retrieve the master version number and server version number.
1. Download Wireshark, the network traffic analyzer (formerly known as Ethereal).
2. Open your RO client. Do not login yet!
3. Open Wireshark and click Capture->Options.... A dialog will appear.
4. In the "Interface" dropdown box, select an interface which represents your Internet connection. If you're unsure which interface represents your Internet connection: select the one whose IP address does not begin with 192.168. Alternatively only select your internet connection that has a microsoft packet scheduler text in the far right side.
5. Make sure "Enable network name resolution" is checked. When you're done, click Start.
6. Go back to your RO client. Type in some random gibberish in your login dialog, and press Enter. It doesn't matter what you put in the ID and Password fields, as long as they're both more than 3 characters.
You only have to press Enter, nothing more. It doesn't matter whether the login succeeded or failed.
7. Go back to Wireshark. Click "Stop".
8. In the Wireshark main window you will see the TCP segments that you have captured. You must now fill in a packet filter, but what to fill in depends on whether your server's address is an IP address or a host name.
tcp && tcp.port == XX && ip.addr == Y.Y.Y.Y
Replace XX with your server's port number, and Y.Y.Y.Y with your server's IP address.
tcp && tcp.port == XX && (ip.src_host == "YY" || ip.dst_host == "YY")
Replace XX with your server's port number, and YY with your server's host name.
After having entered a filter, press Enter.

Example showing the filter for iRO.
9. Right click on the first entry and select "Follow TCP Stream".
10. In the dialog that appears, select "Hex Dump".
11.
You should now have the server version number and master version number. In case of iRO, the server version number is 18 and master version number is 1.
The character encoding cannot be automatically detected, but here's a list of possible character encodings that you can use:
| Encoding | Your server uses this encoding if: |
|---|---|
| Western | Most people write English, or a language which uses a Roman-based alphabet. For example, German, French, Portuguese, etc., but also Indonesian. |
| Simplified Chinese | Most people write Simplified Chinese. |
| Traditional Chinese | Most people write Traditional Chinese. |
| Korean | Most people write Korean. |
| Russian | Most people write Russian, or a Cyrillic-based language. |
| Japanese | Most people write Japanese. |
| Thai | Most people write Thai. |
OpenKore/VisualKore reads server information from a file named servers.txt.
| In OpenKore, do this: | In VisualKore, do this: |
|---|---|
| Open the file tables\servers.txt | ![]() Click Advanced->Open Tables Folder. Then open servers.txt. |
If your server is not listed in the file, then add a new entry. If your server is already listed, then modify the existing entry. Here is an example entry:
[International - iRO: Chaos/Loki/Iris] <-- Fill your server name here. It must be between '[' and ']' ip 38.144.194.2 <-- Fill the address here port 6900 <-- Fill the port number here master_version 1 <-- Fill the (decimal) master version number here version 18 <-- Fill the (decimal) server version number here serverType 0 <-- Should be 0 by default; only change this if you experience problems (read on) serverEncoding Western <-- Fill the character encoding here
After having modified servers.txt, restart OpenKore or VisualKore.
Try changing the serverType option in servers.txt. It goes from 0 to 8 (in new version 10 inclusive). Try a different number until you succeed in logging in.
You are probably playing on a private server.
Add
private 1
to your server's entry in servers.txt.
For example, your name is "bananaSplit" but the server show only "naSplit".
Solution: In servers.txt file (located in table folder) place charBlockSize to your server as the following:
charBlockSize 108
The value 108 can be changed until you get the right name. Note that this only works on OpenKore/VisualKore 1.9.3 or later.
Use the Packet Length Extractor.
First of all: OpenKore/VisualKore supports a server because developers wrote support for it. Support for a server does not magically come out of the air - it is the result of hard work. Therefore, whether your server will be supported in the future completely depends on whether there is a developer who is willing to work on support for your server. The less developers play on your server, the smaller the chance is that your server will be supported.
If you are not a developer yourself, then there are several things you can do: