Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Hercules]Creating a stable ragnarok private server server & client included

Newbie Spellweaver
Joined
Jan 3, 2009
Messages
55
Reaction score
2
Ragnarok Private Server Install Guide for Hercules Server Source
Created by Tetious (CodeMonkeyD)
Disclaimer Software, Client, and Server Source Not Created By Me.

Here is a pdf copy of the install guide: View attachment Ragnarok Private Server Install Guide Updated.pdf
Install pack for guide [strike] [/strike]

If you do not wish to download install pack here is a list of the software links required to follow this guide

Software downloads
2013-08-07aRagexe By: Themon
-Undiff
-Patched
-Xdiff
-[strike]kRO Client 2016-01-24 (Could not get direct download to work torrent works)[/strike]
(kRO patch no longer supports clients older then 2017)
-kRO Client 2018-08-13
-RagnarokOnline Patcher Lite
-RagnarokOnline Open Setup
-Grf Editor
- Visual Studio 2015 Community Edition
- Direct File Requires Microsoft sign in
- Github or TortoiseSvn
- MariaDB
- HxD Hex Editor

Install Guide
Code:
Server Setup

Preinstalls
-MariaDB make sure HeidiSQL is checked during install
-Visual Studio 2015 Community Edition
-TortoiseSvn or Github Will be using TortoiseSVN for this guide.

Server Source Svn [url]https://github.com/HerculesWS/Hercules[/url]

You can get a zip of source via link or setup svn directory. 

	Setting up svn directory for server source (Requires TortoiseSvn installed)
	
	Create a new folder -> SVN Checkout.
	
	
	
	Inside Checkout URL of repository is [url]https://github.com/HerculesWS/Hercules[/url] then click … (Browse).
	
	
	
	Make sure trunk is checked as well as sub directories and click ok copy and paste contents of folder into a new folder which you will use for server and edits.
	
	Database Setup
	
	Open HeidiSQL sign in with root and password specified during install. Right click create new database call database whatever you would like.
	
	
	Now go to Tools -> User manager -> Add create a user to manage Ragnarok database only when you finish entering a name and password click Add object and add the ragnarok database you created and give full permissions for that database and click ok. Now disconnect from current session and then login using Ragnarok database user. Double click on ro database to open in then go to file -> Run SQL File locate ro server SQL files ro server  folder -> sql-files hold control key and highlight "item_db, item_db2, logs, main, mob_db, mob_db2, mob_skill_db, mob_skill_db2" then click Open. From here you can choose to go to the login table and change the server id and password, Refresh database click on login table then data tab change userid and user_pass to what you want click green check mark to save.
	
	Server Source

	Make sure to port forward the following ports if you wish to host this publicly 6900, 6121, 5121.
	
	Navigate to server files and open conf -> char -> char-server.conf open with notepad.
	server_name: "Hercules" <- change to server name
	
	// Server Communication username and password. 
			userid: "s1" <- Change these values to what was set in login table.
			passwd: "p1" <- Change these values to what was set in login table.
	//login_ip: "127.0.0.1" <-  Remove the "//". Use WAN IP for public
	//char_ip: "127.0.0.1" <-  Remove the "//". Use WAN IP for public
	
	Save and close. Go back up a directory and open common -> socket.conf in notepad.
	In allow_list: remove "//" in "all",
	
	// IP rules
	//   allow : Accepts connections from the ip range (even if flagged as DDoS)
	//   deny  : Rejects connections from the ip range
	// The rules are processed in order, the first matching rule of each list (allow and deny) is used
	allow_list: (
		//"127.0.0.1",
		//"192.168.0.0/16",
		//"10.0.0.0/255.0.0.0",
		"all",
	)
	
	Save and close. Go back up a directory and open global -> sql_connection.conf in notepad.
	
	db_username: "ragnarok" <- Change to ro database user.
	db_password: "ragnarok" <- Change to password set to ro database user.
	db_database: "ragnarok" <- Change to ro database name.
	
	Save and close. Go back up a directory and open login -> login-server.conf in notepad.
	
	//bind_ip: "127.0.0.1" <- remove "//". Use LAN IP for public
	
	Save and close. Go back up a directory and open map -> map-server.conf in notepad.
	
	userid: "s1" <- Change these values to what was set in login table.
	passwd: "p1" <- Change these values to what was set in login table.
	//char_ip: "127.0.0.1" <- Remove "//". Use WAN IP for public
	//map_ip: "127.0.0.1" <- Remove "//". Use WAN IP for public
	
	Save and close. Go back map directory and open battle -> client.conf in notepad.
	
	// Whether to enable the official packet obfuscation support (good vs WPE)
	// 0: disabled
	// 1: optional (not recommended) -- identifies whether it is required
	// 2: enabled (recommended)
	packet_obfuscation: 1 <- We will be using a client with this being disabled change to 0
	
	Save and close. Go back up two directories and open network.conf in notepad.
	All ips start with " and end with ",
	
	lan_subnets: (
		"127.0.0.1:255.0.0.0",
		// "192.168.1.1:255.255.255.0", <- Remove "//" edit this to your default gateway if you have one. Make sure subnet is correct run ipconfig in command prompt default is "255.255.255.0" most of the time.
	)
	allowed: (
		"0.0.0.0:0.0.0.0", <- add // in front (//"0.0.0.0:0.0.0.0")
		// "127.0.0.1:255.0.0.0", <- Remove "//" also add line and add default gateway from above. If you are going to be hosting this publicly make sure you add wan ip and correct subnet as well
	)
	trusted: (
		"127.0.0.1:255.0.0.0", <-add line and add lan ip (If used) as well as wan ip (If used).
	)
	
	Save and close. Go back up two directories and open src-> common -> mmo.h in notepad. Scroll till you find
	
	#ifndef PACKETVER
		#define PACKETVER 20141022 -> change to ragexe client date we are using 2013-08-07a so change 20141022 to 20130807
	#endif // PACKETVER
	
	//Uncomment the following line if your client is ragexeRE instead of ragexe (required because of conflicting packets in ragexe vs ragexeRE).
	//#define ENABLE_PACKETVER_RE <- this defines whether not client is renewal or not (not used keep // this guide is for prerenewal) 
	#ifdef ENABLE_PACKETVER_RE
		#define PACKETVER_RE
		#undef ENABLE_PACKETVER_RE
	#endif // DISABLE_PACKETVER_RE
	
	
	Save and close. Now open up Visual Studio 2015 file -> open -> Project/Solution… navigate to server source and open file named Hercules-14 it will ask to download C++ tools allow for it to install and reopen Hercules-14. Once opened right click on "Solution 'Hercules-14 (8 projects)" and Build Solution or CTRL+SHIFT+B. Once compile is finish you will be prompted with "Build: 8 succeeded, 0 failed, 0 up-to-date, 0 skipped" exit visual studio 2015.
	
	Client
	
	Preinstalls
	-GRF Editor
	-Hxd or any other hex editor
	-kRO Renewal client
	-Nemo Patcher (Optional)
	-kRO rag lite
	-2013-08-07a ragexe (prepatched or undiff)
	-translation files
	-opensetup
	
	Translation Files
	Create a new folder with SVN Checkout link [url]https://github.com/Asheraf/Translation.git/[/url]
	
	Nemo Patcher (Optional use if you want to diff your own client)
	Create a new folder with SVN Checkout link [url]https://github.com/MStr3am/NEMO.git/[/url]
	
	Diffing Client (You can use prepatched client if you want to skip this)
	Open Nemo Patcher -> trunk -> NEMO.exe Input Exe File browse for 2013-08-07aRagexe not 2013-08-07aRagexe _patched. It will ask to Update Output patched filename hit Yes make sure to change name from 2013-08-07aRagexe _patched.exe to 2013-08-07aRagexe _patched1.exe or something else if you are diffing this to the same directory the prepatched client is in. Click Load Client then Select Recommended keep INI file DATA.INI change iteminfo.lub to iteminfo.lua then scroll down and make sure Disable Packet Encryption is checked and green you can change this later if you decide to encrypt packets this will also require client.conf's packet_obfuscation to be set to 2. Press Apply Selected to save.
	
	kRO Client Update
	Place rsu-kro-rag-lite.exe inside kRO client and run allow for kRO to fully update client. If you are not using the ragexe provided in this guide and wish to use renewal client make sure you run rsu-kro-renewal-lite.exe instead of the one stated above. Run multiple times to fully patch.
	
	kRO Grf
	Open up translation folder and copy the Data folder as well as System folder from trunk and paste into another folder outside of the svn folder for example kROGrfPatch. Go back in the translation folder then Pre-Renewal and copy data and System from this folder and paste into the folder you pasted the other two data and System folders merge and replace same name files. Open the data folder once paste is finished then go to MsgString this directory is the correct MsgStrings for the following client dates which fixed Gui and name string errors we are using 2013-08-07 so rename this file msgstringtable now copy and replace with this file in the parent directory. Now open clientinfo.xml in notepad
	<display>Test Server</display> <- Change to server name
	<address>127.0.0.1</address> <- Change to ip default, WAN, or Loopback IP
	<yellow> <- This shows the following userid's listed below as admins in client GM clothes enabled or disabled via client diff will still show yellow instead of white character name
		<admin>2000000</admin>
		<admin>2000001</admin>
		<admin>2000002</admin>
	</yellow>
	
	Save and close. Open un Hxd hex editor and file -> open 2013-08-07aRagexe you diffed then go to Search -> Find and find the following ws2 make sure it is set to ws2_32.dll not ws2_pp.dll save and exit if using prepatched diff client you can skip this already checked this. Now open GRF Editor File -> New -> New Grf or CTRL+N click on new.grf and go to Container options make sure Display encoding is set to Korean since default is Western European. Right click on new.grf and then click Add… in Source file / directory click Dir… navigate to the data folder you created and edited double click on data folder to make sure you are inside it do not add System folder to this click Select folder make sure Grf patch is blank and hit Add you will get an exception prompt but since we change translation to Korean ignore this. Go to File -> Save as… name this file whatever you would like I named it xdata.grf and save to the folder where you added data and System now close Grf Editor.
	
	Finishing up client
	Copy the System folder, Grf data file, diffed Ragexe, and opensetup to your kRO client copy and replace files if prompted then run Ragexe to create a DATA.ini file then close Ragexe client open up the DATA.ini file created in notepad
	[Data]<- You should see this
	1=data.grf
	
	[Data]<- Change to this
	1=xdata.grf <- Change to your data.grf you created
	2=data.grf
	
	Save and close.
	
	Running server
	Open server source and run run-server.bat make sure no errors are showing and once server is up and running launch your Ragexe in kRO Client. To create an account use Username_M for male and Username_F for female and password you wish to use and click login you will then be prompted to create a pin then create a character. If you wish to give yourself GM status create a character and make sure you login to the game then logout and go into login table in database and change group_id to 99 click green check to save and log back in.

If you have any questions please feel free to reach out to me.

Attached Files
View attachment Ragnarok Private Server Install Guide Updated.pdf
 

Attachments

You must be registered for see attachments list
Last edited:
Back
Top