Jump to content
  • 1
WhiteGoblin

[Tutorial] Creating an Open-source Ragnarok Online Server with kRO & OpenKore Support

Question

[ Creating an Open-source Ragnarok Online Server with kRO & OpenKore Support ]


[ Table Of Contents ]

  • Introduction
  • Master List: All The Required Downloads
  • Microsoft Visual Studio 2022: Installation
  • Laragon: Installing and Upgrading
  • rAthena: Installing, Configuring, and Optimizing
  • Flux Control Panel: Installing and Modifying
  • The kRO Client: Updating, Diffing, Hexing, Translating, and Customizing
  • The OpenKore Client: Packet Extraction, Configuration, and Field Updating
  • Logging Into Your Server, Making a GM Account, and Playing!
  • Troubleshooting The Situation
  • Packaging It Up For Transportation
  • Post Install House Cleaning
  • Conclusion


[ Introduction ]

I'd like to walk you through the complete process of creating an up-to-date open-source server for Ragnarok Online using rAthena. This includes removing all of its security so that it can be accessed via multiple clients. Next, we'll install a web management control panel that users can create accounts on, submit tickets with, even research your servers’ unique stats and databases. Afterwards we're going to transform the latest official Korean client by diffing, hexing, translating, & heavily customizing it. Finally, we're going to configure the OpenKore client to work with our server. As well support interfacing with the official client through proxy.

We're going to be using the same packet structure across all aspects so that they can properly communicate with each other. This was selected by researching what the last fully developed version was for OpenKore. (2020-04-01b) Since this is running primarily open-source software, it slowly gets better overtime. This is actually ahead of the International Servers and many other countries not only in features but content. I've included the full process so that anyone can take the next or a different set of packets and reproduce these results. This is also completely portable. Ends with one folder, drag and drop. All software included is free, there is zero piracy endorsed.


[ Master List: All The Required Downloads ] [ 3.8GB ]

Compiling and Editing:
01.) Microsoft Visual Studio (link)
02.) Notepad++ (link)

Databases and Webserver:
03.) Laragon Portable (link)
04.) MariaDB Server 10.7.3 (link)
05.) PHP 7.4.28 (non thread safe) (link)
06.) Nginx 1.21.6 Mainline (link)
07.) HeidiSQL 11.3 (64 portable) (link)

Server Emulator and Web Management:
08.) rAthena (link)
09.) Flux Control Panel: (link)

Official Client:
10.) kRO (v20210406) (link)
11.) 2020-04-01bRagexe (link)
12.) ROenglishRE (link)
13.) RO Patcher Lite (link)
14.) RO OpenSetup (link)
15.) Nemo (link)

OpenKore Client:
16.) OpenKore (link)
17.) Winsock Packet Editor (link) (password: openkore)

Troubleshooting:
18.) Visual C++ Redistributable Runtimes All-in-One (link)


[ Microsoft Visual Studio 2022: Installation ] [ 7.62GB ]

01.) Execute "VisualStudioSetup.exe". (let it update)
02.) At the install screen, scroll down to the "Desktop & Mobile" section.
03.) Checkmark "Desktop development with C++".
04.) Then look on the right side under "Installation details", go to the "Optional" section.
05.) Uncheck "Just-In-Time debugger". (this will remove Live Share as well)
06.) Uncheck "C++ profiling tools".
07.) Uncheck "C++ CMake tools for Windows".
08.) Uncheck "C++ ATL for latest v143 build tools (x86 x64)".
09.) Uncheck "Test Adapter for Boost.Test".
10.) Uncheck "Test Adapter for Google Test".
11.) Uncheck "IntelliCode".
12.) Uncheck "C++ AddressSanitizer".
13.) Click Install. (in bottom right)

Note: Wow! Even stripped down, this is a massive 7.62GB installation. Depending on how you access the internet this might take a while. Also, consider how far into the future you are from the time of this post. The install size will be different given it's continually updated. Feel free to move on while this is running in the background. You won't actually need to compile anything until you reach Step 14 of the rAthena section.

14.) Install Notepad++ (execute npp.8.3.2.Installer.x64)

Note: Moving forward, I highly suggest using Notepad++ to create and edit files. Primarily so you can get a line count without needing to boot all of Visual Studio. This is a clean and lightweight solution.


[ Laragon: Installing and Upgrading ]

01.) Extract Laragon Portable.
02.) Delete "php-5.4.9-nts-Win32-VC9-x86" from "\laragon\bin\php".
03.) Extract "php-7.4.28-nts-Win32-vc15-x64" as a folder into "\laragon\bin\php".
04.) Delete "mysql-5.1.72-win32" from "\laragon\bin\mysql".
05.) Extract "mariadb-10.7.3-winx64" as a folder into "\laragon\bin\mysql".
06.) Delete "nginx-1.14.0" from "\laragon\bin\nginx".
07.) Extract "nginx-1.21.6" as a folder into "\laragon\bin\nginx".
08.) Delete all the contents of "\laragon\bin\heidisql".
09.) Extract "HeidiSQL_11.3_64_Portable" directly into "\laragon\bin\heidisql".
10.) Open Laragon. Click Start All.
11.) Grant MariaDB and Nginx firewall permissions when prompted.
12.) Close Laragon window, do not exit the program. Don't worry it's still running in your system tray.


[ rAthena: Installing, Configuring, and Optimizing ]

01.) Extract rAthena.
02.) Go to "\rathena\conf". Rename the "import-tmpl" folder to "import".
03.) Open: "\rathena\conf\import\char_conf.txt", add:

// Server Communication username and password.
userid: supercool
passwd: coolsuper

server_name: GoblinRO

// 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: 127.0.0.1

// 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: 192.168.1.130

// Starting point for new characters.
start_point: iz_int,18,26

// Amount of time in seconds by which the character deletion is delayed.
char_del_delay: 10

// Restrict character deletion by email address or birthdate.
char_del_option: 1

// Restrict character deletion as long as he is still in a party or guild.
char_del_restriction: 0

// Pincode system
pincode_enabled: no

Note: You're going to want to enter your own userid/passwd, server name, and server IP. (wan if going off network)

04.) Open: "\rathena\conf\import\inter_conf.txt", add: "use_sql_db: yes"
05.) Open: "\rathena\conf\import\log_conf.txt", add:

// log_filter: 1 = logs ANY items
log_filter: 1

// log_chat: 63 = logs everything
log_chat: 63

06.) Open: "\rathena\conf\import\login_conf.txt", add:

// Can you use _M/_F to make new accounts on the server?
// Note: This only works if client side password encryption is not enabled.
new_account: yes

// Ipban features
ipban_enable: no

07.) Open: "\rathena\conf\import\map_conf.txt", add:

// Server Communication username and password.
userid: supercool
passwd: coolsuper

// 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: 127.0.0.1

// 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: 192.168.1.130

Note: You're going to want to enter the same userid/passwd and IP used in char_conf.txt.

08.) Open: "\rathena\conf\import\packet_conf.txt", add:

// IP rules
//   allow : Accepts connections from the ip range (even if flagged as DDoS)

allow: 127.0.0.1
allow: 192.168.0.0/16

Note: Change to match your network setup.

09.) Open: "\rathena\src\config\packets.hpp". Comment out lines: 44-62. (packet obfuscation)
10.) Open: "\rathena\src\custom\defines_pre.hpp". Line 12 add: "#define PACKETVER 20200401".
11.) Open: "\rathena\npc\re\warps\cities\izlude.txt". Comment out lines: 39-54.
12.) Open: "\rathena\npc\re\warps\fields\prontera_fild.txt". Comment out lines: 94-113.

Note: Why are removing these warps important? So these are the novice start areas to the game. Like any MMORPG these were the most populated maps 24/7/365. It got to the point where they became overflooded not just by new players but bots. You'd wonder around trying to find something to kill that wasn't already taken, to the point leveling actually became a nightmare. So what they did was implement multiple instances of the same maps. Putting players in different load balanced instances allowed everybody to breath and comfortably start the game with some people but not to many.

Though this had some downsides. Let's say you just started new characters so you could play with your friends. You might be loaded into prt_fild08a while your friends were loaded into b and c. Meaning there is zero crossover, you're all in your own unique world. You can't see each other, the monsters spawn differently, and that fun starting the game together experience is gone. Given we're setting up a small server here, there is no point in having multiple instances. So we're removing the extras and specifying a singular starting area.

13.) Create a new "compile.bat" file inside "\rathena" that contains:

@echo off
"C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\MSBuild.exe" -m
pause

Note: Your install location might be different. Adjust accordingly.

14.) Execute compile.bat. Wait for it to finish. Check to make sure it's error free at the end.
15.) Convert all data files to SQL so you can use MariaDB via running "\rathena\yaml2sql.bat". (you will have to confirm with "Y" ten times during this process)
16.) Open "\rathena\sql-files", delete the following:

item_db.sql
item_db_equip.sql
item_db_etc.sql
item_db_usable.sql
item_db2.sql
mob_db.sql
mob_db2.sql
mob_skill_db.sql
mob_skill_db2.sql
readme.md

17.) Open "\rathena\sql-files\compatibility" and move "item_db_re_compat.sql" and "item_db2_re_compat.sql" up one level to "\rathena\sql-files". You should now have 16 files (not including folders) inside "\rathena\sql-files".
18.) Open Laragon. Click Database. Click New. (bottom left)
19.) Under "Session Name", change "Unnamed" to "Laragon". Then click "Open".
20.) Click "manage user authentication and privileges" in the top bar.
21.) Click "Add". Change username to "ragnarok". Change password to "ragnarok". Checkmark the "Global Privileges" box. Click Save. Click Close.
22.) Right click "Laragon" in the top of the left column. Expand "Create new". Click "Database". Enter name "ragnarok". Click OK.
23.) Click "ragnarok" in the left column. Go to "File" in the top left. Expand and click "Run SQL File". Direct to "\rathena\sql-files\". Select all 16 .sql files. Click Open. Confirm auto-detect. (let finish)
24.) Click "refresh" in the top bar. (next to manage user authentication and privileges)
25.) Expand the "ragnarok" database in the left column. Click "login" which will bring it up on the right. Click the "data" tab.
26.) Change the account's userid and user_pass to match the server communication username and password created back in step 3.
27.) Close these windows. Get back to having Laragon running in your system tray.
28.) Open "kRO_FullClient_20210406.zip", extract "msvcr110.dll" into "\rathena".
29.) Go to "\rathena", execute "runserver.bat". Three consoles: the login, character, and map servers are going to open.
30.) As each part comes online you'll need to grant it firewall access.

Note: We're spinning up the server to make sure we're good before moving on. You should see all green status updates.

Note: If you plan on including WAN clients, then you'll need to open the: 5121, 6121, 6900, & 80 ports on your network firewall / router. Please consider this a large security risk! The scope of this document does not include properly securing an exposed server. Proceed with caution.

[ Flux Control Panel: Installing and Modifying ]

01.) Extract FluxCP into "\laragon\www" make sure it's the actual root contents and not just the folder that contains them. (replace index.php)
02.) Open "\laragon\www\config\application.php".
03.) Line 6: delete BaseURI. EX: 'fluxcp', becomes '',
04.) Line 7: change your Installer Password. EX: "secretpassword" becomes "supersecretpassword".
05.) Line 43: change MinPasswordLength to 6.
06.) Line 45: change PasswordMinUpper to 0.
07.) Line 46: change PasswordMinLower to 0.
08.) Line 47: change PasswordMinNumber to 0.
09.) Line 49: change GMMinPasswordLength to 6.
10.) Line 50: change GMPasswordMinUpper to 0.
11.) Line 51: change GMPasswordMinLower to 0.
12.) Line 52: change GMPasswordMinNumber to 0.
13.) Line 53: change GMPasswordMinSymbol to 0.
14.) Line 54: change RandomPasswordLength to 6.
15.) Line 60: change PincodeEnabled to false.
16.) Line 78: change ShowCopyright to false.
17.) Line 82: change UseCaptcha to false.
18.) Line 99: change AcceptDonations to false.
19.) Line 220: change CMSNewsType to 2. (this adds rAthena news) (not required)
20.) Line 225: change CMSNewsLimit to 2. (two articles fits the new layout well)
21.) Line 233: change SDEnableCreditRewards to false.
22.) Comment out lines 251 - 260. (removes fluff from web navigation)
23.) Comment out lines 269 - 272. (removes donations from web navigation)
24.) Comment out lines 288 - 291. (removes social media from web navigation)
25.) Comment out line 305. (removes send email button)
26.) Comment out line 307. (removes cash shop button)
27.) Comment out lines 329-331. (removes transfer credits and cart)
28.) Comment out line 348. (removes cash points)
29.) Comment out line 360. (removes paypal)
30.) Comment out lines 376 - 380. (removes donations)
31.) Save and close file.
32.) Open Laragon. Click Database. Click "Open" in the new window. Click "manage user authentication and privileges" in the top bar.
33.) Click "Add". Change username to "fluxcpuser". Change password to "fluxcppass". Checkmark the "Global Privileges" box. Click Save. Click Close. Close database window.
34.) Open "\laragon\www\config\servers.php".
35.) Line 7: change your Server Name to something friendly. EX: "FluxRO" becomes "GoblinRO".
36.) Line 17: change your Username from "ragnarok" to "fluxcpuser".
37.) Line 18: change your Password from "ragnarok" to "fluxcppass".
38.) Line 38: change your Username from "ragnarok" to "fluxcpuser".
39.) Line 39: change your Password from "ragnarok" to "fluxcppass".
40.) Line 55: change your Server Name to the new one from Line 7.
41.) Save and close file.
42.) Open Laragon. Click Menu. Expand PHP. Expand Extensions. Click tidy.
43.) Click Menu. Expand Nginx. Expand sites-enabled. Click 00-default.conf.
44.) Line 9: change "127.0.0.1;" to "all;". Save file. Close file.
45.) Open Laragon. Click "Reload" on the Nginx line next to the open port (80).
46.) Click Web. The installer should now pop-up in your browser.
47.) Enter your installer password changed in Step 4. Click Authenticate.
48.) Click "Install or Update Everything". (it's in bold) Confirm process.
49.) Once the new site pops up, change the URL from localhost to the IP address of the machine hosting the server. Press enter.
50.) Confirm it works and bookmark this page as it's your new control panel, ticket system, and server information tool. (you can click around for fun if you like)

Note: You can login via any account on the server or make a new one! During account creation a working email address is NOT required but input of one is. ([email protected], etc.) Accounts flagged as GM in the database will have Admin access in the control panel.


[ The kRO Client: Updating, Diffing, Hexing, Translating, and Customizing ]

01.) Extract kRO_FullClient_20210406.
02.) Extract RO Patcher Lite into "\client".
03.) Execute "rsu-kro-rag-lite-x64.exe" and wait for it to finish updating the client.
04.) Extract RO OpenSetup into "\client".
05.) Extract ROenglishRE.
06.) Open "ROenglishRE\Renewal". Copy everything into "\client". (override already present files)
07.) Open "ROenglishRE\Client Support\Renewal\2020-09". Copy "data" folder into "\client". (override as well)
08.) Extract Nemo. Execute "NEMO.exe".
09.) Look for "Input Exe File" at the bottom. Click "Browse". Direct towards "2020-04-01bRagexe.exe".
10.) Look for "Output Patched" at the bottom. Click "Browse". Direct towards "\client\2020-04-01bRagexe_patched.exe".
11.) Create a new "profile.log" file (any location) that contains:

3 Chat Flood Remove Limit
9 Disable 1rag1 type parameters (Recommended)
14 Disable Hallucination Wavy Screen (Recommended)
16 Disable Swear Filter
20 Extend Chat Box
21 Extend Chat Room Box
22 Extend PM Box
23 Enable /who command (Recommended)
24 Fix Camera Angles (Recommended)
32 Increase Zoom Out Max
34 Enable /showname (Recommended)
35 Read Data Folder First
36 Read msgstringtable.txt (Recommended)
38 Remove Gravity Ads (Recommended)
39 Remove Gravity Logo (Recommended)
41 Disable Nagle Algorithm (Recommended)
44 Translate Client (Recommended)
46 Use Normal Guild Brackets (Recommended)
47 Use Ragnarok Icon
48 Use Plain Text Descriptions (Recommended)
49 Enable Multiple GRFs (Recommended)
50 Skip License Screen
53 Use Ascii on All LangTypes (Recommended)
64 @ Bug Fix (Recommended)
65 Load Custom lua file instead of iteminfo*.lub (Recommended)
73 Remove Hourly Announce (Recommended)
74 Increase Screenshot Quality
84 Remove Serial Display (Recommended)
88 Allow space in guild name
90 Enable DNS Support (Recommended)
91 Disconnect to Login Window
213 Disable Help Message on Login (Recommended)
215 Increase Map Quality
216 Hide Cash Shop
226 Disable Walk To Delay.
230 Always load Korea ExternalSettings lua file (Recommended)
231 Remove hardcoded address/port (Recommended)
232 Restore old login packet (Recommended)
233 Hide SNS Button
242 Disable kRO Site Launch
244 Disable Cheat Defender Game Guard (Recommended)
248 Remove wrong chars from cash shop
253 Skip some hidden menu icon buttons
270 Change AchievementList*.lub path
272 Change Towninfo*.lub path
273 Change PetEvolutionCln*.lub path
274 Change Tipbox*.lub path
275 Change CheckAttendance*.lub path
276 Change OngoingQuestInfoList*.lub path
277 Change RecommendedQuestInfoList*.lub path
278 Change PrivateAirplane*.lub path
279 Fix item description bug
284 Copy patched Cheat Defender Game Guard
289 Fix Homunculus attack AI
313 Change MapInfo*.lub path
322 Case-Insensitive Storage Search
323 Restore Songs Effect
326 Disable OTP Login Packet (Recommended)
328 Enable 44.1 kHz Audio Sampling Frequency
334 Remove Hardcoded HTTP IP
338 Additional client validation (Recommended)
347 Disable OS Privileges execution level
348 Send client flags to server (Recommended)
351 Translate arrows buttons text from korean to english
362 Fixes the Korean Job name issue with LangType (Recommended)
399 Set high priority class for active client
400 Set normal priority class for inactive client
404 Use borderless mode in full screen (Recommended)
416 Fix Tetra Vortex
427 Check is servertype in xml file was set to correct value (Recommended)

12.) Click the "Load Client" button at the bottom.
13.) Click the "Load Profile" button to the right of it. Select and open the "profile.log" file just created.
14.) Some modifications require input. As each prompt appears, edit them as follows:

DATA.INI
System/itemInfo_EN.lua
100
System\achievement_list_EN.lub
System/Towninfo_EN.lub
System\PetEvolutionCln_true_E.lub
System/tipbox_EN.lub
System/CheckAttendance_EN.lub
System\OngoingQuestInfoList_True_EN
System\RecommendedQuestInfoList_True_EN
System\PrivateAirplane_T_EN.lub
System\mapInfo_true_EN.lub
Using wrong servertype in clientinfo/sclientinfo xml. Please change servertype to correct one.

Note: You'll notice how two of them don't ask for a file extension, which is why we leave it off. That is not erroneous.

15.) You should have 70 enabled patches when finished. Click "Apply Selected". Close Nemo.
16.) Clean up the "\client" directory by deleting the following no longer required files:

\AI_sakray
\AuthModuleCache
\client
\db
\doc
\HShield
\PatchClient
2020-04-01bRagexe_patched.exe.db
2020-04-01bRagexe_patched.exe.txt
2020-04-01bRagexe_patched.exe.secure.txt
aossdk.dll
ASPLnchr.exe
bz32ex.dll
CDResFileList.dat
dbghelp.dll
FORMAT.CFG
GameGuard.des
IFU13.inf
IFU19.inf
IFU7A.inf
IFUEC.inf
Init.exe
KOR_LANG.CFG
lua.exe
mirrors.json
NPCHK.DLL
NPCIPHER.DLL
npkcrypt.dll
npkcrypt.sys
npkcrypt.vxd
npkcusb.sys
npkeysdk.dll
npkpdb.dll
NPPSK.DLL
NPSCAN.DES
npupdate.dll
NPUPDATE0.DLL
NPX.DLL
opensetup.ini.sample
Patch.inf
patchRE.inf
Patchup.exe
Patchup_RE.exe
Ragexe.exe
RagexeRE.exe
RagHash.dat
RagnarokKR.inf
rsu-kro-rag-lite.exe
rsu-kro-rag-lite.ini
rsu-kro-renewal-lite.exe
rsu-kro-renewal-lite.ini
SavePath_Rag.exe
SavePath_Sak.exe
Setup.exe
suipre.dll
supdate.log
v3hunt.dll

Note: This should leave you with 58 files inside "\client". (8 folders + 50 misc)

17.) Go to "\client\data". Open "clientinfo.xml". Change it too:

<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
   <desc>Ragnarok Client Information</desc>
   <servicetype>korea</servicetype>
   <servertype>primary</servertype>
   <connection>
      <display>GoblinRO</display>
            <address>192.168.1.130</address>
            <port>6900</port>
            <version>55</version>
            <langtype>0</langtype>
      </connection>
   <connection>
      <display>OpenKore</display>
            <address>127.0.0.1</address>
            <port>6901</port>
            <version>55</version>
            <langtype>0</langtype>
      </connection>
</clientinfo>

Note: Inside the first <connection> block, change the <display> name and <address> to match your server. If WAN, you can use services like No-IP.

18.) Go to "\client". Execute "opensetup.exe". (decline Telemetry prompt) Change the options to match your wants and needs. (graphics device, resolution, etc)

Note: I personally like 1280x720 when playing in a window. Specifically while using X-Kore which we'll cover later.


[ The OpenKore Client: Packet Extraction, Configuration, and Field Updating ] [ Best Client ]

Note: Steps 1 and 2 are educational. Worth learning but can be skipped as I've already done this for you.

01.) Extract Winsock Packet Editor (WPE). Allow the executable if Windows Defender or your anti-virus software flags it.
02.) Using "WPE PRO - modified.exe" follow the Openkore Wiki Connectivity Guide to obtain master version and version number. (screenshot)
03.) Extract OpenKore.
04.) Go to "\openkore\tables" then open "servers.txt". Find "[Localhost]" towards the bottom. Replace with:

[Localhost]
ip 192.168.1.130
port 6900
private 1
master_version 0
version 128
charBlockSize 155
serverType kRO_RagexeRE_2020_04_01b
serverEncoding Western
addTableFolders kRO/RagexeRE_2020_04_01b;translated/kRO_english;kRO

Note: Change the IP address to match your server. If WAN, you can use services like No-IP.

05.) Go to "\openkore\fields". You'll notice inside are a number of folders labelled by episode number. You're going to want to take all the files out of each of these episodic folders and move them up a directory. Overriding the ones currently in your "\openkore\fields" folder.

Note: We're doing this so that the bot can understand the map layouts of the newer content. The rAthena emulator is always improving but currently at the time of posting goes all the way to Episode 18. You might notice the bot is currently only developed up to Episode 17.1. If you play that far then you'll probably have a good idea on making the bot work in uncharted waters. For now, don't worry about it one bit. You're good for a loooooong time. Hell they'll probably have it included by the time you make it there.


[ Logging Into Your Server, Making a GM Account, and Playing! ]

Note: Even if you want to go straight to using OpenKore, we're going to use the kRO client to finish off the server and make our first accounts. While these steps can be done in OpenKore, it's easier to just follow along using a visual interface for now. If you've picked this project up at a later date, then make sure you've started the rAthena servers. (go to "\rathena", execute "runserver.bat")

Using the kRO Client:
01.) Go to "\client" and execute "2020-04-01bRagexe_patched.exe".
02.) Select "GoblinRO" when prompted. (the server name you entered previously)
03.) At the login screen type "admin_M" to make a new account on the server. You need to enter a 6+ digit password as well. (123456)

Note: The first account is always a GM account. This has a different set of sprites used that are not compatible with actually wanting to play the game. They look cool because on the off chance you actually crossed one it needed to be unique. Generally you only saw one if you were about to get banned for botting or hacking so it was quite the event to casually see an admin. LOL!

04.) Make a new character you're going to use to pwn rule breakers. Once in game, hit escape, then click "exit to windows".
05.) Open Laragon. Click Database. Click "Open" in the new window.
06.) Expand the "ragnarok" database. Click "login" again like we did in Step 25 of setting up rAthena. Click the "data" tab.
07.) Look for the newly created admin account under the server account. Change it's "group_id" to 99. (now has full GM powers)
08.) Close these windows. Go back to having Laragon running in your system tray.
09.) Once again head to "\client" and execute "2020-04-01bRagexe_patched.exe".
10.) At the login screen let's make a real account to actually play on. Once again, "yourname_M" or "yourname_F" (male or female) to make a new account on the server.

Note: The sex you select here is only used for account management and does not effect the sex of your characters you make in game. It's pretty much pointless.

11.) Spend extra time picking the right hair style, color, sex, and race. This is your new character!!
12.) Play the game!

Note: Future logins do not require the _M or _F after your account name. This is only done the first time to register a new account on the server from inside the client. You can also register accounts with the Flux Control Panel if you like. If you ever want to delete a character, it'll ask you for your email address as a security check to confirm. Accounts created in client automatically get registered with "[email protected]" as their email address in the database.

Using the OpenKore Client:
01.) Go to "\openkore\control". Open "config.txt".
02.) Line 6: add "Localhost".
03.) Line 7: add "0".
04.) Line 8: add "Goblin". (your username) (do not add _M or _F)
05.) Line 9: add "123456". (your password)
06.) Line 11: add "0". (number / position of your character)
07.) Save file.
08.) Go to "\openkore" and execute "wxstart.exe". (wait for it to process maps and finish loading)
09.) Play the game!

Note: OpenKore does not currently support the new character start maps. It'll just throw errors in the console about not being able to navigate. Use the kRO client to at least get out of the introduction area. You can walk directly through the beginning and board the ship to Izlude. It's not required to interact with anything if you don't want to. There is stuff to do though, up to you.

Using OpenKore inside kRO via X-Kore:
01.) Go to "\openkore\control". Open "config.txt".
02.) Line 23: change "0" to "3".
03.) Line 30: change "ragexe.exe" to "2020-04-01bRagexe_patched".
04.) Save file.
05.) Go to "\openkore" and execute "wxstart.exe". (wait for it to finish loading)
06.) Go to "\client" and execute "2020-04-01bRagexe_patched.exe".
07.) Select "OpenKore" when prompted.
08.) Login via your normal username and password for the account.
09.) Select your character at the next screen.
10.) Play the game with two clients at once!

Note: I highly suggest running kRO in windowed mode for ease of use. This way you can bounce back and forth between the clients effortlessly. You do not need to keep the kRO or OpenKore windows as a focused priority. You can literally open other applications on top of both without any pause to the botting. You'll hear it in the background still playing the game while you're reading the wiki, checking email, or just doing whatever you please.


[ Troubleshooting The Situation ]

Note: Having an odd problem loading software at any point? Getting an error and not sure why? I'm not sure why either so give this a whirl.

01.) Extract "Visual-C-Runtimes-All-in-One-Feb-2022.zip"
02.) Execute "install_all.bat".
03.) Wait for it to finish.
04.) ??? Try Again ???
05.) Probably Success.


[ Packaging It Up For Transportation ]

01.) Make a new folder called "GoblinRO". (or whatever you like)
02.) Place your "\laragon", "\rathena", "\client", & "\openkore" folders inside it.
03.) Make a new folder inside called "troubleshooting".
04.) Copy "Visual-C-Runtimes-All-in-One-Feb-2022.zip" into "\troubleshooting".
05.) Compress your "GoblinRO" folder. (zip/rar)

Note: Transportation or not, I suggest you make a backup like this once you're finished. Always a good idea! Also compressing it greatly helps transfer times to things like USB drives or across networks. Not only is the file size reduced from around 5.5GB to 3.9GB but the fact that it doesn't have to work with the insane amount of small files present is a life saver. Remember you can always just extract the /client or /openkore folder if you're on computers that aren't running the server.


[ Post Install House Cleaning ]

01.) Delete the Master List of downloaded files required for install. (18 files, 3.8GB)
02.) Uninstall Microsoft Visual Studio 2022 Community Edition. (7.62GB)

Note: You will lose your ability to compile the server again if you make future changes.


[ Conclusion ]

Alright! Way to make it to the end! I spent a week constructing this. Across that time, I reached out to a lot of the related discord servers and forums. Mainly making sure my instructions were correct and up to date. At most stops I was met with silence then a private message with a price tag. Anywhere from $10-100 an hour, just for their working knowledge of an old MMORPG. For truly custom work I do understand it, but for basics? It really only motivated me more to put this out.

I'd like to help remove the ridiculous paywall that has slowly started to surround this information. Sure, this has been a deep dive into an esoteric world. This game is over twenty years old at this point. Though it saddens me to see information omitted or even removed in order to sell it back to people as a service. I think that's not only harmful but gating something we have all enjoyed for decades. This is just information, there is nothing deserving of your currency. Everyone should be able to do this, for free.

I hope you have found this both helpful and educational! Feel free to translate into your local language and distribute. I have done three trial runs across different machines and have not had a problem. If you're experiencing issues check that you haven't missed a step. Need support? Check the forum, wiki, github, and discord for both rAthena and OpenKore. Still can't find a solution? Post here! I cannot guarantee a timely response but I will check back in occasionally and try to help out as much as I can. Thanks for reading! /cheers

  • Upvote 2
  • Love 3
  • MVP 3
  • Like 2
Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0
Posted (edited)
On 3/15/2022 at 1:12 AM, WhiteGoblin said:

[ Création d'un serveur en ligne Ragnarok open-source avec le support kRO et OpenKore ]


[ Table des matières ]

  • Introduction
  • Liste principale : tous les téléchargements requis
  • Microsoft Visual Studio 2022 : installation
  • Laragon : installation et mise à niveau
  • rAthena : installation, configuration et optimisation
  • Panneau de contrôle Flux : installation et modification
  • Le client kRO : mise à jour, différenciation, hexagone, traduction et personnalisation
  • Le client OpenKore : extraction de paquets, configuration et mise à jour des champs
  • Connectez-vous à votre serveur, créez un compte GM et jouez !
  • Dépannage de la situation
  • Packaging It Up For Transportation
  • Post Install House Cleaning
  • Conclusion


[ Introduction ]

I'd like to walk you through the complete process of creating an up-to-date open-source server for Ragnarok Online using rAthena. This includes removing all of its security so that it can be accessed via multiple clients. Next, we'll install a web management control panel that users can create accounts on, submit tickets with, even research your servers’ unique stats and databases. Afterwards we're going to transform the latest official Korean client by diffing, hexing, translating, & heavily customizing it. Finally, we're going to configure the OpenKore client to work with our server. As well support interfacing with the official client through proxy.

We're going to be using the same packet structure across all aspects so that they can properly communicate with each other. This was selected by researching what the last fully developed version was for OpenKore. (2020-04-01b) Since this is running primarily open-source software, it slowly gets better overtime. This is actually ahead of the International Servers and many other countries not only in features but content. I've included the full process so that anyone can take the next or a different set of packets and reproduce these results. This is also completely portable. Ends with one folder, drag and drop. All software included is free, there is zero piracy endorsed.


[ Master List: All The Required Downloads ] [ 3.8GB ]

Compiling and Editing:
01.) Microsoft Visual Studio (link)
02.) Notepad++ (link)

Databases and Webserver:
03.) Laragon Portable (link)
04.) MariaDB Server 10.7.3 (link)
05.) PHP 7.4.28 (non thread safe) (link)
06.) Nginx 1.21.6 Mainline (link)
07.) HeidiSQL 11.3 (64 portable) (link)

Server Emulator and Web Management:
08.) rAthena (link)
09.) Flux Control Panel: (link)

Official Client:
10.) kRO (v20210406) (link)
11.) 2020-04-01bRagexe (link)
12.) ROenglishRE (link)
13.) RO Patcher Lite (link)
14.) RO OpenSetup (link)
15.) Nemo (link)

OpenKore Client:
16.) OpenKore (link)
17.) Winsock Packet Editor (link) (password: openkore)

Troubleshooting:
18.) Visual C++ Redistributable Runtimes All-in-One (link)


[ Microsoft Visual Studio 2022: Installation ] [ 7.62GB ]

01.) Execute "VisualStudioSetup.exe". (let it update)
02.) At the install screen, scroll down to the "Desktop & Mobile" section.
03.) Checkmark "Desktop development with C++".
04.) Then look on the right side under "Installation details", go to the "Optional" section.
05.) Uncheck "Just-In-Time debugger". (this will remove Live Share as well)
06.) Uncheck "C++ profiling tools".
07.) Uncheck "C++ CMake tools for Windows".
08.) Uncheck "C++ ATL for latest v143 build tools (x86 x64)".
09.) Uncheck "Test Adapter for Boost.Test".
10.) Uncheck "Test Adapter for Google Test".
11.) Uncheck "IntelliCode".
12.) Uncheck "C++ AddressSanitizer".
13.) Click Install. (in bottom right)

Note: Wow! Even stripped down, this is a massive 7.62GB installation. Depending on how you access the internet this might take a while. Also, consider how far into the future you are from the time of this post. The install size will be different given it's continually updated. Feel free to move on while this is running in the background. You won't actually need to compile anything until you reach Step 14 of the rAthena section.

14.) Install Notepad++ (execute npp.8.3.2.Installer.x64)

Note: Moving forward, I highly suggest using Notepad++ to create and edit files. Primarily so you can get a line count without needing to boot all of Visual Studio. This is a clean and lightweight solution.


[ Laragon: Installing and Upgrading ]

01.) Extract Laragon Portable.
02.) Delete "php-5.4.9-nts-Win32-VC9-x86" from "\laragon\bin\php".
03.) Extract "php-7.4.28-nts-Win32-vc15-x64" as a folder into "\laragon\bin\php".
04.) Delete "mysql-5.1.72-win32" from "\laragon\bin\mysql".
05.) Extract "mariadb-10.7.3-winx64" as a folder into "\laragon\bin\mysql".
06.) Delete "nginx-1.14.0" from "\laragon\bin\nginx".
07.) Extract "nginx-1.21.6" as a folder into "\laragon\bin\nginx".
08.) Delete all the contents of "\laragon\bin\heidisql".
09.) Extract "HeidiSQL_11.3_64_Portable" directly into "\laragon\bin\heidisql".
10.) Open Laragon. Click Start All.
11.) Grant MariaDB and Nginx firewall permissions when prompted.
12.) Close Laragon window, do not exit the program. Don't worry it's still running in your system tray.


[ rAthena: Installing, Configuring, and Optimizing ]

01.) Extract rAthena.
02.) Go to "\rathena\conf". Rename the "import-tmpl" folder to "import".
03.) Open: "\rathena\conf\import\char_conf.txt", add:

// Server Communication username and password.
userid: supercool
passwd: coolsuper

server_name: GoblinRO

// 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: 127.0.0.1

// 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: 192.168.1.130

// Starting point for new characters.
start_point: iz_int,18,26

// Amount of time in seconds by which the character deletion is delayed.
char_del_delay: 10

// Restrict character deletion by email address or birthdate.
char_del_option: 1

// Restrict character deletion as long as he is still in a party or guild.
char_del_restriction: 0

// Pincode system
pincode_enabled: no

Note: You're going to want to enter your own userid/passwd, server name, and server IP. (wan if going off network)

04.) Open: "\rathena\conf\import\inter_conf.txt", add: "use_sql_db: yes"
05.) Open: "\rathena\conf\import\log_conf.txt", add:

// log_filter: 1 = logs ANY items
log_filter: 1

// log_chat: 63 = logs everything
log_chat: 63

06.) Open: "\rathena\conf\import\login_conf.txt", add:

// Can you use _M/_F to make new accounts on the server?
// Note: This only works if client side password encryption is not enabled.
new_account: yes

// Ipban features
ipban_enable: no

07.) Open: "\rathena\conf\import\map_conf.txt", add:

// Server Communication username and password.
userid: supercool
passwd: coolsuper

// 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: 127.0.0.1

// 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: 192.168.1.130

Note: You're going to want to enter the same userid/passwd and IP used in char_conf.txt.

08.) Open: "\rathena\conf\import\packet_conf.txt", add:

// IP rules
//   allow : Accepts connections from the ip range (even if flagged as DDoS)

allow: 127.0.0.1
allow: 192.168.0.0/16

Note: Change to match your network setup.

09.) Open: "\rathena\src\config\packets.hpp". Comment out lines: 44-62. (packet obfuscation)
10.) Open: "\rathena\src\custom\defines_pre.hpp". Line 12 add: "#define PACKETVER 20200401".
11.) Open: "\rathena\npc\re\warps\cities\izlude.txt". Comment out lines: 39-54.
12.) Open: "\rathena\npc\re\warps\fields\prontera_fild.txt". Comment out lines: 94-113.

Note: Why are removing these warps important? So these are the novice start areas to the game. Like any MMORPG these were the most populated maps 24/7/365. It got to the point where they became overflooded not just by new players but bots. You'd wonder around trying to find something to kill that wasn't already taken, to the point leveling actually became a nightmare. So what they did was implement multiple instances of the same maps. Putting players in different load balanced instances allowed everybody to breath and comfortably start the game with some people but not to many.

Though this had some downsides. Let's say you just started new characters so you could play with your friends. You might be loaded into prt_fild08a while your friends were loaded into b and c. Meaning there is zero crossover, you're all in your own unique world. You can't see each other, the monsters spawn differently, and that fun starting the game together experience is gone. Given we're setting up a small server here, there is no point in having multiple instances. So we're removing the extras and specifying a singular starting area.

13.) Create a new "compile.bat" file inside "\rathena" that contains:

@echo off
"C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\MSBuild.exe" -m
pause

Note: Your install location might be different. Adjust accordingly.

14.) Execute compile.bat. Wait for it to finish. Check to make sure it's error free at the end.
15.) Convert all data files to SQL so you can use MariaDB via running "\rathena\yaml2sql.bat". (you will have to confirm with "Y" ten times during this process)
16.) Open "\rathena\sql-files", delete the following:

item_db.sql
item_db_equip.sql
item_db_etc.sql
item_db_usable.sql
item_db2.sql
mob_db.sql
mob_db2.sql
mob_skill_db.sql
mob_skill_db2.sql
readme.md

17.) Open "\rathena\sql-files\compatibility" and move "item_db_re_compat.sql" and "item_db2_re_compat.sql" up one level to "\rathena\sql-files". You should now have 16 files (not including folders) inside "\rathena\sql-files".
18.) Open Laragon. Click Database. Click New. (bottom left)
19.) Under "Session Name", change "Unnamed" to "Laragon". Then click "Open".
20.) Click "manage user authentication and privileges" in the top bar.
21.) Click "Add". Change username to "ragnarok". Change password to "ragnarok". Checkmark the "Global Privileges" box. Click Save. Click Close.
22.) Right click "Laragon" in the top of the left column. Expand "Create new". Click "Database". Enter name "ragnarok". Click OK.
23.) Click "ragnarok" in the left column. Go to "File" in the top left. Expand and click "Run SQL File". Direct to "\rathena\sql-files\". Select all 16 .sql files. Click Open. Confirm auto-detect. (let finish)
24.) Click "refresh" in the top bar. (next to manage user authentication and privileges)
25.) Expand the "ragnarok" database in the left column. Click "login" which will bring it up on the right. Click the "data" tab.
26.) Change the account's userid and user_pass to match the server communication username and password created back in step 3.
27.) Close these windows. Get back to having Laragon running in your system tray.
28.) Open "kRO_FullClient_20210406.zip", extract "msvcr110.dll" into "\rathena".
29.) Go to "\rathena", execute "runserver.bat". Three consoles: the login, character, and map servers are going to open.
30.) As each part comes online you'll need to grant it firewall access.

Note: We're spinning up the server to make sure we're good before moving on. You should see all green status updates.

Note: If you plan on including WAN clients, then you'll need to open the: 5121, 6121, 6900, & 80 ports on your network firewall / router. Please consider this a large security risk! The scope of this document does not include properly securing an exposed server. Proceed with caution.

[ Flux Control Panel: Installing and Modifying ]

01.) Extract FluxCP into "\laragon\www" make sure it's the actual root contents and not just the folder that contains them. (replace index.php)
02.) Open "\laragon\www\config\application.php".
03.) Line 6: delete BaseURI. EX: 'fluxcp', becomes '',
04.) Line 7: change your Installer Password. EX: "secretpassword" becomes "supersecretpassword".
05.) Line 43: change MinPasswordLength to 6.
06.) Line 45: change PasswordMinUpper to 0.
07.) Line 46: change PasswordMinLower to 0.
08.) Line 47: change PasswordMinNumber to 0.
09.) Line 49: change GMMinPasswordLength to 6.
10.) Line 50: change GMPasswordMinUpper to 0.
11.) Line 51: change GMPasswordMinLower to 0.
12.) Line 52: change GMPasswordMinNumber to 0.
13.) Line 53: change GMPasswordMinSymbol to 0.
14.) Line 54: change RandomPasswordLength to 6.
15.) Line 60: change PincodeEnabled to false.
16.) Line 78: change ShowCopyright to false.
17.) Line 82: change UseCaptcha to false.
18.) Line 99: change AcceptDonations to false.
19.) Line 220: change CMSNewsType to 2. (this adds rAthena news) (not required)
20.) Line 225: change CMSNewsLimit to 2. (two articles fits the new layout well)
21.) Line 233: change SDEnableCreditRewards to false.
22.) Comment out lines 251 - 260. (removes fluff from web navigation)
23.) Comment out lines 269 - 272. (removes donations from web navigation)
24.) Comment out lines 288 - 291. (removes social media from web navigation)
25.) Comment out line 305. (removes send email button)
26.) Comment out line 307. (removes cash shop button)
27.) Comment out lines 329-331. (removes transfer credits and cart)
28.) Comment out line 348. (removes cash points)
29.) Comment out line 360. (removes paypal)
30.) Comment out lines 376 - 380. (removes donations)
31.) Save and close file.
32.) Open Laragon. Click Database. Click "Open" in the new window. Click "manage user authentication and privileges" in the top bar.
33.) Click "Add". Change username to "fluxcpuser". Change password to "fluxcppass". Checkmark the "Global Privileges" box. Click Save. Click Close. Close database window.
34.) Open "\laragon\www\config\servers.php".
35.) Line 7: change your Server Name to something friendly. EX: "FluxRO" becomes "GoblinRO".
36.) Line 17: change your Username from "ragnarok" to "fluxcpuser".
37.) Line 18: change your Password from "ragnarok" to "fluxcppass".
38.) Line 38: change your Username from "ragnarok" to "fluxcpuser".
39.) Line 39: change your Password from "ragnarok" to "fluxcppass".
40.) Line 55: change your Server Name to the new one from Line 7.
41.) Save and close file.
42.) Open Laragon. Click Menu. Expand PHP. Expand Extensions. Click tidy.
43.) Click Menu. Expand Nginx. Expand sites-enabled. Click 00-default.conf.
44.) Line 9: change "127.0.0.1;" to "all;". Save file. Close file.
45.) Open Laragon. Click "Reload" on the Nginx line next to the open port (80).
46.) Click Web. The installer should now pop-up in your browser.
47.) Enter your installer password changed in Step 4. Click Authenticate.
48.) Click "Install or Update Everything". (it's in bold) Confirm process.
49.) Once the new site pops up, change the URL from localhost to the IP address of the machine hosting the server. Press enter.
50.) Confirm it works and bookmark this page as it's your new control panel, ticket system, and server information tool. (you can click around for fun if you like)

Note: You can login via any account on the server or make a new one! During account creation a working email address is NOT required but input of one is. ([email protected], etc.) Accounts flagged as GM in the database will have Admin access in the control panel.


[ The kRO Client: Updating, Diffing, Hexing, Translating, and Customizing ]

01.) Extract kRO_FullClient_20210406.
02.) Extract RO Patcher Lite into "\client".
03.) Execute "rsu-kro-rag-lite-x64.exe" and wait for it to finish updating the client.
04.) Extract RO OpenSetup into "\client".
05.) Extract ROenglishRE.
06.) Open "ROenglishRE\Renewal". Copy everything into "\client". (override already present files)
07.) Open "ROenglishRE\Client Support\Renewal\2020-09". Copy "data" folder into "\client". (override as well)
08.) Extract Nemo. Execute "NEMO.exe".
09.) Look for "Input Exe File" at the bottom. Click "Browse". Direct towards "2020-04-01bRagexe.exe".
10.) Look for "Output Patched" at the bottom. Click "Browse". Direct towards "\client\2020-04-01bRagexe_patched.exe".
11.) Create a new "profile.log" file (any location) that contains:

3 Chat Flood Remove Limit
9 Disable 1rag1 type parameters (Recommended)
14 Disable Hallucination Wavy Screen (Recommended)
16 Disable Swear Filter
20 Extend Chat Box
21 Extend Chat Room Box
22 Extend PM Box
23 Enable /who command (Recommended)
24 Fix Camera Angles (Recommended)
32 Increase Zoom Out Max
34 Enable /showname (Recommended)
35 Read Data Folder First
36 Read msgstringtable.txt (Recommended)
38 Remove Gravity Ads (Recommended)
39 Remove Gravity Logo (Recommended)
41 Disable Nagle Algorithm (Recommended)
44 Translate Client (Recommended)
46 Use Normal Guild Brackets (Recommended)
47 Use Ragnarok Icon
48 Use Plain Text Descriptions (Recommended)
49 Enable Multiple GRFs (Recommended)
50 Skip License Screen
53 Use Ascii on All LangTypes (Recommended)
64 @ Bug Fix (Recommended)
65 Load Custom lua file instead of iteminfo*.lub (Recommended)
73 Remove Hourly Announce (Recommended)
74 Increase Screenshot Quality
84 Remove Serial Display (Recommended)
88 Allow space in guild name
90 Enable DNS Support (Recommended)
91 Disconnect to Login Window
213 Disable Help Message on Login (Recommended)
215 Increase Map Quality
216 Hide Cash Shop
226 Disable Walk To Delay.
230 Always load Korea ExternalSettings lua file (Recommended)
231 Remove hardcoded address/port (Recommended)
232 Restore old login packet (Recommended)
233 Hide SNS Button
242 Disable kRO Site Launch
244 Disable Cheat Defender Game Guard (Recommended)
248 Remove wrong chars from cash shop
253 Skip some hidden menu icon buttons
270 Change AchievementList*.lub path
272 Change Towninfo*.lub path
273 Change PetEvolutionCln*.lub path
274 Change Tipbox*.lub path
275 Change CheckAttendance*.lub path
276 Change OngoingQuestInfoList*.lub path
277 Change RecommendedQuestInfoList*.lub path
278 Change PrivateAirplane*.lub path
279 Fix item description bug
284 Copy patched Cheat Defender Game Guard
289 Fix Homunculus attack AI
313 Change MapInfo*.lub path
322 Case-Insensitive Storage Search
323 Restore Songs Effect
326 Disable OTP Login Packet (Recommended)
328 Enable 44.1 kHz Audio Sampling Frequency
334 Remove Hardcoded HTTP IP
338 Additional client validation (Recommended)
347 Disable OS Privileges execution level
348 Send client flags to server (Recommended)
351 Translate arrows buttons text from korean to english
362 Fixes the Korean Job name issue with LangType (Recommended)
399 Set high priority class for active client
400 Set normal priority class for inactive client
404 Use borderless mode in full screen (Recommended)
416 Fix Tetra Vortex
427 Check is servertype in xml file was set to correct value (Recommended)

12.) Click the "Load Client" button at the bottom.
13.) Click the "Load Profile" button to the right of it. Select and open the "profile.log" file just created.
14.) Some modifications require input. As each prompt appears, edit them as follows:

DATA.INI
System/itemInfo_EN.lua
100
System\achievement_list_EN.lub
System/Towninfo_EN.lub
System\PetEvolutionCln_true_E.lub
System/tipbox_EN.lub
System/CheckAttendance_EN.lub
System\OngoingQuestInfoList_True_EN
System\RecommendedQuestInfoList_True_EN
System\PrivateAirplane_T_EN.lub
System\mapInfo_true_EN.lub
Using wrong servertype in clientinfo/sclientinfo xml. Please change servertype to correct one.

Note: You'll notice how two of them don't ask for a file extension, which is why we leave it off. That is not erroneous.

15.) You should have 70 enabled patches when finished. Click "Apply Selected". Close Nemo.
16.) Clean up the "\client" directory by deleting the following no longer required files:

\AI_sakray
\AuthModuleCache
\client
\db
\doc
\HShield
\PatchClient
2020-04-01bRagexe_patched.exe.db
2020-04-01bRagexe_patched.exe.txt
2020-04-01bRagexe_patched.exe.secure.txt
aossdk.dll
ASPLnchr.exe
bz32ex.dll
CDResFileList.dat
dbghelp.dll
FORMAT.CFG
GameGuard.des
IFU13.inf
IFU19.inf
IFU7A.inf
IFUEC.inf
Init.exe
KOR_LANG.CFG
lua.exe
mirrors.json
NPCHK.DLL
NPCIPHER.DLL
npkcrypt.dll
npkcrypt.sys
npkcrypt.vxd
npkcusb.sys
npkeysdk.dll
npkpdb.dll
NPPSK.DLL
NPSCAN.DES
npupdate.dll
NPUPDATE0.DLL
NPX.DLL
opensetup.ini.sample
Patch.inf
patchRE.inf
Patchup.exe
Patchup_RE.exe
Ragexe.exe
RagexeRE.exe
RagHash.dat
RagnarokKR.inf
rsu-kro-rag-lite.exe
rsu-kro-rag-lite.ini
rsu-kro-renewal-lite.exe
rsu-kro-renewal-lite.ini
SavePath_Rag.exe
SavePath_Sak.exe
Setup.exe
suipre.dll
supdate.log
v3hunt.dll

Note: This should leave you with 58 files inside "\client". (8 folders + 50 misc)

17.) Go to "\client\data". Open "clientinfo.xml". Change it too:

<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
   <desc>Ragnarok Client Information</desc>
   <servicetype>korea</servicetype>
   <servertype>primary</servertype>
   <connection>
      <display>GoblinRO</display>
            <address>192.168.1.130</address>
            <port>6900</port>
            <version>55</version>
            <langtype>0</langtype>
      </connection>
   <connection>
      <display>OpenKore</display>
            <address>127.0.0.1</address>
            <port>6901</port>
            <version>55</version>
            <langtype>0</langtype>
      </connection>
</clientinfo>

Note: Inside the first <connection> block, change the <display> name and <address> to match your server. If WAN, you can use services like No-IP.

18.) Go to "\client". Execute "opensetup.exe". (decline Telemetry prompt) Change the options to match your wants and needs. (graphics device, resolution, etc)

Note: I personally like 1280x720 when playing in a window. Specifically while using X-Kore which we'll cover later.


[ The OpenKore Client: Packet Extraction, Configuration, and Field Updating ] [ Best Client ]

Note: Steps 1 and 2 are educational. Worth learning but can be skipped as I've already done this for you.

01.) Extract Winsock Packet Editor (WPE). Allow the executable if Windows Defender or your anti-virus software flags it.
02.) Using "WPE PRO - modified.exe" follow the Openkore Wiki Connectivity Guide to obtain master version and version number. (screenshot)
03.) Extract OpenKore.
04.) Go to "\openkore\tables" then open "servers.txt". Find "[Localhost]" towards the bottom. Replace with:

[Localhost]
ip 192.168.1.130
port 6900
private 1
master_version 0
version 128
charBlockSize 155
serverType kRO_RagexeRE_2020_04_01b
serverEncoding Western
addTableFolders kRO/RagexeRE_2020_04_01b;translated/kRO_english;kRO

Note: Change the IP address to match your server. If WAN, you can use services like No-IP.

05.) Go to "\openkore\fields". You'll notice inside are a number of folders labelled by episode number. You're going to want to take all the files out of each of these episodic folders and move them up a directory. Overriding the ones currently in your "\openkore\fields" folder.

Note: We're doing this so that the bot can understand the map layouts of the newer content. The rAthena emulator is always improving but currently at the time of posting goes all the way to Episode 18. You might notice the bot is currently only developed up to Episode 17.1. If you play that far then you'll probably have a good idea on making the bot work in uncharted waters. For now, don't worry about it one bit. You're good for a loooooong time. Hell they'll probably have it included by the time you make it there.


[ Logging Into Your Server, Making a GM Account, and Playing! ]

Note: Even if you want to go straight to using OpenKore, we're going to use the kRO client to finish off the server and make our first accounts. While these steps can be done in OpenKore, it's easier to just follow along using a visual interface for now. If you've picked this project up at a later date, then make sure you've started the rAthena servers. (go to "\rathena", execute "runserver.bat")

Using the kRO Client:
01.) Go to "\client" and execute "2020-04-01bRagexe_patched.exe".
02.) Select "GoblinRO" when prompted. (the server name you entered previously)
03.) At the login screen type "admin_M" to make a new account on the server. You need to enter a 6+ digit password as well. (123456)

Note: The first account is always a GM account. This has a different set of sprites used that are not compatible with actually wanting to play the game. They look cool because on the off chance you actually crossed one it needed to be unique. Generally you only saw one if you were about to get banned for botting or hacking so it was quite the event to casually see an admin. LOL!

04.) Make a new character you're going to use to pwn rule breakers. Once in game, hit escape, then click "exit to windows".
05.) Open Laragon. Click Database. Click "Open" in the new window.
06.) Expand the "ragnarok" database. Click "login" again like we did in Step 25 of setting up rAthena. Click the "data" tab.
07.) Look for the newly created admin account under the server account. Change it's "group_id" to 99. (now has full GM powers)
08.) Close these windows. Go back to having Laragon running in your system tray.
09.) Once again head to "\client" and execute "2020-04-01bRagexe_patched.exe".
10.) At the login screen let's make a real account to actually play on. Once again, "yourname_M" or "yourname_F" (male or female) to make a new account on the server.

Note: The sex you select here is only used for account management and does not effect the sex of your characters you make in game. It's pretty much pointless.

11.) Spend extra time picking the right hair style, color, sex, and race. This is your new character!!
12.) Play the game!

Note: Future logins do not require the _M or _F after your account name. This is only done the first time to register a new account on the server from inside the client. You can also register accounts with the Flux Control Panel if you like. If you ever want to delete a character, it'll ask you for your email address as a security check to confirm. Accounts created in client automatically get registered with "[email protected]" as their email address in the database.

Using the OpenKore Client:
01.) Go to "\openkore\control". Open "config.txt".
02.) Line 6: add "Localhost".
03.) Line 7: add "0".
04.) Line 8: add "Goblin". (your username) (do not add _M or _F)
05.) Line 9: add "123456". (your password)
06.) Line 11: add "0". (number / position of your character)
07.) Save file.
08.) Go to "\openkore" and execute "wxstart.exe". (wait for it to process maps and finish loading)
09.) Play the game!

Note: OpenKore does not currently support the new character start maps. It'll just throw errors in the console about not being able to navigate. Use the kRO client to at least get out of the introduction area. You can walk directly through the beginning and board the ship to Izlude. It's not required to interact with anything if you don't want to. There is stuff to do though, up to you.

Using OpenKore inside kRO via X-Kore:
01.) Go to "\openkore\control". Open "config.txt".
02.) Ligne 23 : changez "0" en "3".
03.)  Ligne 30 : remplacez "ragexe.exe" par "2020-04-01bRagexe_patched".
04.)  Enregistrer le fichier.
05.)  Allez dans "\openkore" et exécutez "wxstart.exe". (attendez qu'il finisse de charger)
06.)  Allez dans "\client" et exécutez "2020-04-01bRagexe_patched.exe".
07.)  Sélectionnez "OpenKore" lorsque vous y êtes invité.
08.)  Connectez-vous via votre nom d'utilisateur et votre mot de passe habituels pour le compte.
09.)  Sélectionnez votre personnage à l'écran suivant.
10.)  Jouez au jeu avec deux clients à la fois !

Noter: Je suggère fortement d'exécuter kRO en mode fenêtré pour en faciliter l'utilisation. De cette façon, vous pouvez rebondir entre les clients sans effort. Vous n'avez pas besoin de garder les fenêtres kRO ou OpenKore en priorité. Vous pouvez littéralement ouvrir d'autres applications en plus des deux sans aucune pause dans le botting. Vous l'entendrez en arrière-plan tout en jouant au jeu pendant que vous lisez le wiki, consultez vos e-mails ou faites simplement ce que vous voulez.


[ Dépannage de la situation ]

Remarque : Vous  rencontrez un problème étrange lors du chargement du logiciel à un moment donné ? Vous obtenez une erreur et vous ne savez pas pourquoi ? Je ne sais pas pourquoi non plus, alors essayez-le.

01.)  Extrayez "Visual-C-Runtimes-All-in-One-Feb-2022.zip"
02.)  Exécutez "install_all.bat".
03.
04.)  ??? Réessayer ???
05.)  Probablement le succès.


[Emballage pour le transport]

01.)  Créez un nouveau dossier appelé "GoblinRO". (ou ce que vous voulez)
02.)  Placez vos dossiers "\laragon", "\rathena", "\client", & "\openkore" à l'intérieur.
03.)  Créez un nouveau dossier à l'intérieur appelé "dépannage".
04.)  Copiez "Visual-C-Runtimes-All-in-One-Feb-2022.zip" dans "\troubleshooting".
05.)  Compressez votre dossier "GoblinRO". (zip/rar)

Remarque : Transport ou pas, je vous suggère de faire une sauvegarde comme celle-ci une fois que vous avez terminé. Toujours une bonne idée ! De plus, sa compression aide grandement les temps de transfert vers des éléments tels que des clés USB ou sur des réseaux. Non seulement la taille du fichier est réduite d'environ 5,5 Go à 3,9 Go, mais le fait qu'il n'a pas à fonctionner avec la quantité insensée de petits fichiers présents est une bouée de sauvetage. N'oubliez pas que vous pouvez toujours simplement extraire le dossier /client ou /openkore si vous êtes sur des ordinateurs qui n'exécutent pas le serveur.


[Post Install House Cleaning]

01.)  Supprimez la liste principale des fichiers téléchargés requis pour l'installation. (18 fichiers, 3,8 Go)
02.)  Désinstallez Microsoft Visual Studio 2022 Community Edition. (7,62 Go)

Remarque : Vous perdrez votre capacité à compiler à nouveau le serveur si vous apportez des modifications ultérieures.


[ Conclusion ]

D'accord ! Manière d'aller jusqu'au bout ! J'ai passé une semaine à le construire. Au cours de cette période, j'ai contacté de nombreux serveurs de discorde et forums connexes. Je m'assurais principalement que mes instructions étaient correctes et à jour. À la plupart des arrêts, j'ai rencontré un silence puis un message privé avec une étiquette de prix. Entre 10 et 100 $ de l'heure, rien que pour leur connaissance pratique d'un ancien MMORPG. Pour un travail vraiment personnalisé, je le comprends, mais pour les bases ? Cela n'a fait que me motiver davantage à sortir ça.

J'aimerais aider à supprimer le paywall ridicule qui a lentement commencé à entourer ces informations. Bien sûr, cela a été une plongée profonde dans un monde ésotérique. Ce jeu a plus de vingt ans à ce stade. Bien que cela m'attriste de voir des informations omises ou même supprimées afin de les revendre aux gens en tant que service. Je pense que ce n'est pas seulement nocif, mais que c'est quelque chose que nous apprécions tous depuis des décennies. Ce n'est qu'une information, rien ne mérite votre devise. Tout le monde devrait pouvoir le faire, gratuitement.

J'espère que vous avez trouvé cela à la fois utile et éducatif ! N'hésitez pas à traduire dans votre langue locale et à distribuer. J'ai fait trois essais sur différentes machines et je n'ai pas eu de problème. Si vous rencontrez des problèmes, vérifiez que vous n'avez pas manqué une étape. Besoin de soutien? Consultez le forum, le wiki, le github et la discorde pour rAthena et OpenKore. Vous ne trouvez toujours pas de solution ? Postez ici ! Je ne peux pas garantir une réponse rapide, mais je reviendrai de temps en temps et j'essaierai d'aider autant que possible. Merci d'avoir lu! /salutations

Hello,
Your tutorial is great, thank you.
It works from the first try.
I still have a problem because when I open the skills page, the I crash and I have a message "Gravity error handler".
This of the creation and the entry in game all works except the opening of the page of the skills

Capture.PNG

Edited by KevinMystic
Link to comment
Share on other sites

  • 0
On 5/9/2022 at 1:00 AM, KevinMystic said:

Hello,
Your tutorial is great, thank you.
It works from the first try.
I still have a problem because when I open the skills page, the I crash and I have a message "Gravity error handler".
This of the creation and the entry in game all works except the opening of the page of the skills

Capture.PNG

Hello. Do you need other files in data>luafiles514>lua files>skilinfoz
Following this guide these lua fit up to 2018 clients. Good luck ) удачи

Link to comment
Share on other sites

  • 0

Hello i have an error when opening 2020-04-01bRagexe_patched
image.png.f9332b606f03ec44f89df7e674962e08.png

image.png.0040890db313948f28eb9b89a067bd59.png

image.png.90b4f7de67be78f99de886c2a7a36d38.png

etc.

Also, when playing a girl account theres an error 

[Warning]: pc_group_pc_load:  (AID:2000001) logged in with unknown group id (0)! kicking...

image.png.0a29894307a7d5e15fbf21304ae808e8.png
After that i cannot move or type anything.

 

Edited by walter307
Link to comment
Share on other sites

  • 0
On 7/11/2022 at 1:50 PM, walter307 said:

Hello i have an error when opening 2020-04-01bRagexe_patched
image.png.f9332b606f03ec44f89df7e674962e08.png

image.png.0040890db313948f28eb9b89a067bd59.png

image.png.90b4f7de67be78f99de886c2a7a36d38.png

etc.

Also, when playing a girl account theres an error 

[Warning]: pc_group_pc_load:  (AID:2000001) logged in with unknown group id (0)! kicking...

image.png.0a29894307a7d5e15fbf21304ae808e8.png
After that i cannot move or type anything.

 

The fix on the errors is to simply turn this on, specially the Ignore most errors.

image.png.729f0f561605976d227f34cc6dc73323.png


Ok. As i slowly figure things out, i have found the solution on the [Warning]: pc_group_pc_load (AID:2000001) logged in with unknown group id (0)! kicking... error.
It pops up because i put depreciated commands that i copied on my 3 year old server.
The answer was on the atcommands.yml. I searched all my commands and found out that 5-6 of it was not on the commands anymore.
So if anyone has the same problem that i have, i hope this help. 

Link to comment
Share on other sites

  • 0

Ive followed the steps to the letter but I get errors while compiling. The instructions dont say what to do if you get errors.

Link to comment
Share on other sites

  • 0
4 hours ago, TheOnlyNecro said:

Ive followed the steps to the letter but I get errors while compiling. The instructions dont say what to do if you get errors.

can you post the most of the errors?

Link to comment
Share on other sites

  • 0

I figured everything out but the first portal I went thru I crashed with this error...

Module Name: A:\RO\client\2020-04-01bRagexe_patched.exe
Time Stamp: 0x5e7c1b91 - Wed Mar 25 22:03:45 2020


Exception Type: 0xc0000005

0x0073dbeb    A:\RO\client\2020-04-01bRagexe_patched.exe
0x0072f62a    A:\RO\client\2020-04-01bRagexe_patched.exe
0x00618c3c    A:\RO\client\2020-04-01bRagexe_patched.exe
0x0083f464    A:\RO\client\2020-04-01bRagexe_patched.exe
0x00a45d06    A:\RO\client\2020-04-01bRagexe_patched.exe
0x7684fa29    C:\WINDOWS\System32\KERNEL32.DLL
0x77ba7a9e    C:\WINDOWS\SYSTEM32\ntdll.dll
0x77ba7a6e    C:\WINDOWS\SYSTEM32\ntdll.dll

eax: 0x00000000    ebx: 0x00cbacf0
ecx: 0x0eec0068    edx: 0x01170000
esi: 0x011e2cf0    edi: 0x011e2cf0
ebp: 0x0019ffec    esp: 0x0019ffe4

stack 0019ffe4 - 001a03e4
0019FFE4 : FF FF FF FF 82 8B BC 77 00 00 00 00 00 00 00 00 
0019FFF4 : CD 5D A4 00 00 80 36 00 00 00 00 00 41 63 74 78 
001A0004 : 20 00 00 00 01 00 00 00 08 33 00 00 DC 00 00 00 
001A0014 : 00 00 00 00 20 00 00 00 00 00 00 00 14 00 00 00 
001A0024 : 01 00 00 00 07 00 00 00 34 00 00 00 7C 01 00 00 
001A0034 : 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
001A0044 : 00 00 00 00 00 00 00 00 02 00 00 00 4E EF 26 1A 
001A0054 : 98 02 00 00 44 00 00 00 E0 02 00 00 54 02 00 00 
001A0064 : 00 00 00 00 BA 71 32 F3 34 05 00 00 4A 00 00 00 
001A0074 : 80 05 00 00 42 03 00 00 00 00 00 00 5B 49 59 2D 
001A0084 : C4 08 00 00 32 00 00 00 F8 08 00 00 00 03 00 00 
001A0094 : 00 00 00 00 CD EA CE 32 F8 0B 00 00 42 00 00 00 
001A00A4 : 3C 0C 00 00 36 03 00 00 00 00 00 00 C8 5F 50 38 
001A00B4 : 74 0F 00 00 5E 00 00 00 D4 0F 00 00 56 03 00 00 
001A00C4 : 00 00 00 00 44 05 28 B1 2C 13 00 00 56 00 00 00 
001A00D4 : 84 13 00 00 86 03 00 00 10 00 00 00 09 00 00 00 

Launch Info 
0141 005E 005E 005E 005E 005E 005E 005E 
0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 

Job : Novice

prt_fild08.rsw 367 212

renderer.cpp 824
 

Edited by TheOnlyNecro
Link to comment
Share on other sites

  • 0

ANd now I crash as soon as I login

 

Says C3dWorldRes :: Usupported Version

 

Edited by TheOnlyNecro
Link to comment
Share on other sites

  • 0
On 7/20/2022 at 3:14 PM, TheOnlyNecro said:

I figured everything out but the first portal I went thru I crashed with this error...

Module Name: A:\RO\client\2020-04-01bRagexe_patched.exe
Time Stamp: 0x5e7c1b91 - Wed Mar 25 22:03:45 2020


Exception Type: 0xc0000005

0x0073dbeb    A:\RO\client\2020-04-01bRagexe_patched.exe
0x0072f62a    A:\RO\client\2020-04-01bRagexe_patched.exe
0x00618c3c    A:\RO\client\2020-04-01bRagexe_patched.exe
0x0083f464    A:\RO\client\2020-04-01bRagexe_patched.exe
0x00a45d06    A:\RO\client\2020-04-01bRagexe_patched.exe
0x7684fa29    C:\WINDOWS\System32\KERNEL32.DLL
0x77ba7a9e    C:\WINDOWS\SYSTEM32\ntdll.dll
0x77ba7a6e    C:\WINDOWS\SYSTEM32\ntdll.dll

eax: 0x00000000    ebx: 0x00cbacf0
ecx: 0x0eec0068    edx: 0x01170000
esi: 0x011e2cf0    edi: 0x011e2cf0
ebp: 0x0019ffec    esp: 0x0019ffe4

stack 0019ffe4 - 001a03e4
0019FFE4 : FF FF FF FF 82 8B BC 77 00 00 00 00 00 00 00 00 
0019FFF4 : CD 5D A4 00 00 80 36 00 00 00 00 00 41 63 74 78 
001A0004 : 20 00 00 00 01 00 00 00 08 33 00 00 DC 00 00 00 
001A0014 : 00 00 00 00 20 00 00 00 00 00 00 00 14 00 00 00 
001A0024 : 01 00 00 00 07 00 00 00 34 00 00 00 7C 01 00 00 
001A0034 : 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
001A0044 : 00 00 00 00 00 00 00 00 02 00 00 00 4E EF 26 1A 
001A0054 : 98 02 00 00 44 00 00 00 E0 02 00 00 54 02 00 00 
001A0064 : 00 00 00 00 BA 71 32 F3 34 05 00 00 4A 00 00 00 
001A0074 : 80 05 00 00 42 03 00 00 00 00 00 00 5B 49 59 2D 
001A0084 : C4 08 00 00 32 00 00 00 F8 08 00 00 00 03 00 00 
001A0094 : 00 00 00 00 CD EA CE 32 F8 0B 00 00 42 00 00 00 
001A00A4 : 3C 0C 00 00 36 03 00 00 00 00 00 00 C8 5F 50 38 
001A00B4 : 74 0F 00 00 5E 00 00 00 D4 0F 00 00 56 03 00 00 
001A00C4 : 00 00 00 00 44 05 28 B1 2C 13 00 00 56 00 00 00 
001A00D4 : 84 13 00 00 86 03 00 00 10 00 00 00 09 00 00 00 

Launch Info 
0141 005E 005E 005E 005E 005E 005E 005E 
0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 

Job : Novice

prt_fild08.rsw 367 212

renderer.cpp 824
 

prt_fild08.gpf extract to data folder

Link to comment
Share on other sites

  • 0
On 7/21/2022 at 7:30 PM, Akkarin said:

prt_fild08.gpf extract to data folder

I have the exact same problem and this doesn't fix it. Also the file doesn't seem to fit into `/client/data` directory, there's nothing here like this one.

 

The openkore bot is working with no problem anyway, so there might be an issue with the kro client setup or patchup. Does it have been tested with this version?

 

I've been doing some testing and it seems that this issue is related with the fields surrounding prontera in 2 maps of distance. Every other map seems to be right.

 

Maybe those fields have been updated in the kro client and not in the rathena server?

image.png.d79bb2cec7dd6a11161921b736c2cdc6.png

Edited by Inot
  • Like 1
Link to comment
Share on other sites

  • 0

Thanks for the guide, the part with the Laragon setup could be lightened, or added assembled for ease of use. And cant nginx-1.21.6  download. For example, I have a problem with Laragon, I assemble it crookedly ...

Edited by Goblin
Link to comment
Share on other sites

  • 0

Hey, thank you for the guide.
I get an error at Step 29 of rathena installation and would like some help if possible. I followed step by step once using the latest version of every program above and again after finding the specific version mentioned and I always get the same error that is on the printscreen below, besides that, my sql-files folder has 17 files instead of only 16 like you mentioned, they are the following:
item_cash_db
item_cash_db2
item_db_re
item_db_re_compat
item_db_re_equip
item_db_re_etc
item_db_re_usable
item_db2_re
item_db2_re_compat
logs
main
mob_db_re
mob_db2_re
mob_skill_db_re
mob_skill_db2_re
roulette_default_data
web

Skipping these steps I tried to confirm that everything else will work, at the ROenglishRE step there is no folder named 2020-09 at the path Client Support\Renewal\, the most recent is 2018-01-24. All the steps after seems to have gone well, I just need to test the Openkore but without the map-server.exe failing will not be possible. Hope you can find time to help with this, thank you!

error.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.