Setting up your own Ragnarok Online private server sounds intimidating the first time you try it. I remember sitting in front of a stack of dead 2012 forum threads, broken YouTube links, and a half-finished MySQL installer wondering if I would ever log into a world I built myself.
It turns out the process is not that hard once you know the moving parts. This guide on how to create a Ragnarok Online private server with rAthena walks you through every step I wish someone had spelled out for me, from system requirements to a working login screen, on either Windows or Linux.
By the end, you will have a fully functional Ragnarok Online private server running locally or on a VPS, plus the troubleshooting knowledge to keep it healthy. I built my first working server for a 30-person guild in about six hours, and most of that time was waiting on downloads and compilation.
Table of Contents
What Is rAthena and Why Create a Ragnarok Online Private Server?
rAthena is an open-source Ragnarok Online server emulator written in C that replicates the official Gravity server logic. It lets you run your own login, char, and map servers so the original kRO client can connect exactly like it would on official servers.
People create a Ragnarok Online private server with rAthena for three main reasons. First, private play with friends on custom rates and events that official servers no longer run. Second, full control over the game world, including custom NPCs, items, and quests. Third, learning how MMORPG server architecture actually works under the hood.
The project lives on GitHub at github.com/rathena/rathena and has been actively maintained since the early 2000s. The community Discord and rathena.org board are the most trusted sources for troubleshooting when something breaks.
System Requirements for Running rAthena
Before downloading anything, check whether your machine can actually run the emulator. rAthena is lightweight compared to most modern games, but you still need a sane baseline.
OS: Windows 10/11 (64-bit) or Ubuntu 22.04 LTS / Debian 12
CPU: Dual-core 2 GHz or better (modern Intel or AMD x86_64)
RAM: 2 GB minimum, 4 GB recommended for 20-50 concurrent players
Disk: 5 GB free for source code, build tools, and client files
Network: 10 Mbps+ upload if hosting for friends outside your LAN
Database: MySQL 8.0 or MariaDB 10.6+
For a small private server hosting 40-50 players, most users on the r/RagnarokOnline subreddit report a $10/month VPS with 4 GB RAM and 2 vCPUs is more than enough. Anything bigger is a bonus for handling custom scripts and heavier event content.
A Raspberry Pi 4 can technically run the binaries, but client connectivity and packetver mismatches become painful. I would not recommend it for anything beyond local offline testing.
How to Create a Ragnarok Online Private Server With rAthena: Step-by-Step
This is the meat of the guide. Follow these steps in order and you will have a working Ragnarok Online private server with rAthena by the end. Plan for 2-4 hours including downloads and compile time.
Step 1: Install Git and a C++ compiler. On Windows grab Visual Studio 2022 Community with the “Desktop development with C++” workload plus Git for Windows. On Ubuntu run sudo apt install git build-essential mysql-server libmysqlclient-dev zlib1g-dev libpcre3-dev.
Step 2: Clone the rAthena repository. Open a terminal and run git clone https://github.com/rathena/rathena.git. This downloads the source code including login-server, char-server, and map-server folders.
Step 3: Install MySQL and create the database. Start your MySQL service, then log in as root with sudo mysql -u root -p. Create a database called ragnarok and a user with full privileges on it. Note the username, password, and hostname for the configuration files later.
Step 4: Import the SQL files. Inside the cloned repo, navigate to sql-files/ and run mysql -u root -p ragnarok < main.sql followed by the other .sql files in that folder. This creates the schema for accounts, characters, items, and guilds.
Step 5: Configure the conf files before compiling. Open conf/inter_athena.conf and set login_server_ip, char_server_ip, and map_server_ip to your server’s IP (use 127.0.0.1 for local-only). Edit conf/char_athena.conf and conf/map_athena.conf with your MySQL credentials.
Step 6: Compile the server binaries. On Windows open rAthena.sln in Visual Studio, select “Release” and “x64”, then build the solution. On Linux run ./configure followed by make inside the source directory. Compilation takes 5-15 minutes depending on hardware.
Step 7: Launch the three servers in order. Start login-server first, wait for it to say “login server is ready”, then start char-server, and finally map-server. You should see all three sitting in your terminal with “connected” status lines.
Configuring the rAthena Server Files (inter_athena, char, map, login)
The configuration files are where most first-timers get stuck. Each server type has its own conf file with specific responsibilities.
The inter_athena.conf file is the master settings file. It controls shared values like server name, the web server URL, and the IP addresses other servers use to find each other. Change server_name to something unique like “MyRO Private” so it shows up in your client.
login_athena.conf controls the login server, which authenticates accounts. Set the MySQL login credentials here and define which login ports (default 6900) to listen on. If you want to use the new account engine, enable account.engine in this file.
char_athena.conf manages character slots per account, the number of allowed maps, and connection to the map server. The default 9 character slots per account is fine for most private servers.
map_athena.conf handles in-game world settings like experience rates, drop rates, and maximum players per map. Want to run 50x rates like the old pre-renewal servers? Set exp_rate, job_rate, and drop_rate here. This is the file you will edit most often as you tune your server.
Always restart all three servers after editing conf files. rAthena does not hot-reload most settings, so a clean restart is required to apply changes.
Connecting Your Ragnarok Client to the Private Server
You now have a running server, but the official kRO client does not know about it yet. You need a client that matches the packet version your server expects, plus a few file edits.
First, check your server’s supported packetver in conf/import/packetver.txt or by looking at the binary’s startup log. Then download a compatible kRO client that matches that packet version. The 2018-09-26 and 2019 clients are the most commonly tested ones with current rAthena builds.
Second, locate your client data folder (usually data/) and add or replace your sclientinfo.xml or data.grf as required by your client version. Many setups also need a patch.diff that matches your server’s packetver.
Third, edit your data/sclientinfo.xml so the client points at your server. Replace the default address with your server’s IP and the login port (default 6900). Save the file as plain text, not RTF.
Launch the client and you should see your custom server name in the server list. Log in with the default admin account (usually created via the makeadmin SQL command in step 4) and pick a character slot to enter the game world.
Hosting Options and Costs for Your Ragnarok Private Server
Once you have a working setup locally, you will probably want friends from outside your home network to join. That means picking where to host the actual binaries.
Local hosting (free): Run everything on your own desktop or a spare PC. Pros are zero cost and full control. Cons are upload bandwidth limits, your home IP being exposed, and the server going down whenever you restart your machine.
VPS hosting ($5-15/month): Services like Contabo, Hetzner, DigitalOcean, and Vultr all run rAthena smoothly on their budget plans. A 4 GB RAM VPS runs about $10 per month and handles 40-50 players comfortably according to multiple reddit threads.
AWS free tier: You can technically run a small rAthena server on a t2.micro for free for the first 12 months, but 1 GB of RAM is tight. Expect to upgrade to a t3.small within a week for stable performance.
Docker deployment: Containerizing rAthena is gaining traction. Community-maintained Docker images wrap the build process and let you spin up a full server with one docker-compose up. This is a clean approach if you already use containers for other projects.
For port forwarding at home, open TCP 6900, 6121, and 5121 on your router and point them at the machine running rAthena. Alternatively, services like ngrok or Hamachi let you skip port forwarding entirely for a small group.
Common Errors and Troubleshooting rAthena Setup
Even with a clean walkthrough, things break. Here are the issues I hit most often when helping new admins set up their first Ragnarok Online private server with rAthena.
MySQL connection refused: The MySQL service is not running, or your char_athena.conf and map_athena.conf still have the default ragnarok user instead of your real credentials. Check sudo systemctl status mysql and the conf files.
Client shows “Cannot connect to server”: Usually a packetver mismatch. Your server was compiled expecting client version X but you downloaded client version Y. Match the dates exactly or apply the proper diff patch.
Lua errors on map load: Modern rAthena uses Lua for NPC scripts. A bad script in npc/ can crash the map server. Run with --debug and check the map server log for the offending filename.
Port 6900 already in use: Another service on your host is squatting on the login port. Run netstat -tulnp | grep 6900 to find it, or change your login server port in login_athena.conf.
GRF file errors: The client cannot find data.grf or rdata.grf. Make sure both files are in the client data folder and that grf-files.conf on the server lists their paths correctly.
The rAthena Discord and rathena.org board are the fastest places to get unstuck. Paste your full map-server log, not just the last line, and mention your OS, client version, and packetver.
FAQ
How do I make my own Ragnarok Online private server?
Download the rAthena source code from GitHub, install MySQL, import the SQL files in sql-files, edit the conf files with your MySQL credentials and IP, compile the binaries, then launch login-server, char-server, and map-server in order. Connect a compatible kRO client by editing sclientinfo.xml with your server IP and login port.
How much does it cost to host a Ragnarok Online private server?
Hosting at home is free aside from electricity and upload bandwidth costs. A VPS capable of running rAthena for 40-50 players typically costs between $5 and $15 per month from providers like Contabo, Hetzner, or DigitalOcean. AWS free tier can run a test server for 12 months, but you will likely need to upgrade to a paid instance within weeks for stable play.
Can you make your own Ragnarok private server?
Yes. rAthena is a free, open-source Ragnarok Online server emulator that lets anyone build and host their own Ragnarok Online private server on Windows or Linux. You only need a basic machine, MySQL, and a compatible kRO client to get started.
What are the minimum system requirements for running rAthena on a server?
rAthena requires at minimum a dual-core 2 GHz CPU, 2 GB of RAM (4 GB recommended), 5 GB of free disk space, and either Windows 10/11 or Ubuntu 22.04 LTS. MySQL 8.0 or MariaDB 10.6 or newer must be installed, and you need a 10 Mbps or faster upload connection if hosting players outside your local network.
Conclusion
You now have everything you need to create a Ragnarok Online private server with rAthena, from the initial clone to a fully running login screen. The core recipe is the same whether you are running Windows, Ubuntu, a VPS, or Docker: install MySQL, clone the repo, edit the conf files, compile, and launch the three servers.
The real fun starts after the first login. Tweak your rates, write NPC scripts, drop in custom items, or hook up a web-based account creator. Most admins find the first weekend is just getting it stable, then the next month is making the world their own.
If you get stuck, the rAthena Discord and rathena.org board are the most responsive places to ask. Join with your server logs, your OS version, and your client date, and you will usually get a working answer within an hour. Good luck, and welcome to running your own Ragnarok Online private server in 2026.