How to set up MuServer step by step
Complete guide to configuring a MU Online server: understanding each MuServer component (ConnectServer, JoinServer, DataServer, GameServer, EventServer) and their roles, the correct startup order and why it matters, setting the database connection in the config files, configuring the server IP and ports (ConnectServer on 44405, GameServer on 55901), adjusting gameplay rates (EXP, Drop, Reset, Zen), enabling and scheduling events (Blood Castle, Devil Square, Chaos Castle, Castle Siege, Crywolf), reading server log files to diagnose startup problems, and the recommended test procedure before opening the server to the public.
MuServer is the set of executables that makes the MU Online game run. Each component has a defined role, and understanding them makes setup and troubleshooting much faster.
MuServer is the set of executables that makes the MU Online game run. Each component has a defined role, and understanding them makes setup and troubleshooting much faster.
MuServer component overview
COMPONENTS AND THEIR FUNCTIONS:
ConnectServer (CS):
→ The FIRST component players reach when connecting
→ Receives the initial connection (default port: TCP 44405)
→ Lists available GameServers and routes the player to one
→ Config file: ConnectServer.ini or connect.ini
JoinServer (JS):
→ Handles ACCOUNT AUTHENTICATION (login + password verification)
→ Communicates with the database to validate credentials
→ Creates the player session after successful login
→ Config file: JoinServer.ini
DataServer (DS):
→ BRIDGES the GameServer to SQL Server
→ Reads/writes: character data, inventory, guilds, positions
→ Requires ODBC DSNs to be configured (see SQL tutorial)
→ Config file: DataServer.ini or DBAgent.ini
GameServer (GS):
→ The GAME ENGINE — where everything happens
→ Manages: maps, monsters, spawns, drops, combat, skills
→ Communicates with DataServer for database access
→ Config file: GameServer.ini — the most complex configuration file
EventServer (ES):
→ Manages periodic EVENTS: Blood Castle, Devil Square, Chaos Castle, etc.
→ Controls event schedules, scores, rewards
→ Config file: EventServer.ini or event-specific ini files
Step 1 — Configure the database connection
POINT MUSERVER TO YOUR SQL SERVER:
WHERE TO FIND THE DATABASE CONFIG:
→ Each component that needs DB access has a config file
→ Common locations:
DataServer\DataServer.ini
JoinServer\JoinServer.ini
GameServer\GameServer.ini
WHAT TO SET (exact parameter names vary by distribution):
→ Database server: 127.0.0.1 or localhost (local SQL on the same machine)
→ Database name: MuOnline
→ SQL username: mu_server (or the user you created)
→ SQL password: [the password you set]
→ DSN name: MuOnline (must match the ODBC DSN you created)
EXAMPLE CONFIGURATION FORMAT:
[DataBase]
DBSrcName = MuOnline ← ODBC DSN name (must match odbcad32.exe entry)
DBUserId = mu_server
DBUserPwd = MuServerPass2024!
DBAddress = 127.0.0.1
DBPort = 1433
[ConnectServer]
Address = 127.0.0.1 ← use 127.0.0.1 for local testing
Port = 44405 ← standard S6 ConnectServer port
Step 2 — Configure IP and ports
SET YOUR SERVER IP AND PORTS:
FOR LOCAL TESTING:
→ All components use 127.0.0.1 (localhost)
→ The client also connects to 127.0.0.1
→ No firewall changes or port forwarding needed for local tests
FOR GOING ONLINE (external IP):
→ Get your public IP from the VPS control panel, or from whatismyip.com
→ Replace 127.0.0.1 with your real public IP in the ConnectServer settings
→ The client's IP.txt or server.ini must also point to this IP
STANDARD PORT CONFIGURATION:
→ ConnectServer: TCP 44405
→ GameServer (first server): TCP 55901
→ GameServer (second server, if multiple): TCP 55902, 55903, etc.
→ DataServer: internal port (varies, not player-facing)
→ JoinServer: internal port (varies, not player-facing)
WINDOWS FIREWALL RULES NEEDED (for online play):
→ Inbound rule: TCP 44405 — Allow
→ Inbound rule: TCP 55901 — Allow
→ These two are the only public-facing ports
→ SQL Server (1433) and DataServer ports: internal only, do NOT open to internet
Step 3 — Adjust gameplay rates
CONFIGURING SERVER RATES:
WHERE TO SET RATES:
→ GameServer.ini is the main configuration file for rates
→ Some distributions have a separate ServerInfo.ini or Settings.ini
EXP (EXPERIENCE) RATE:
→ Controls how fast players level up
→ Common parameter: ExpMultiplier, EXPRate, or NormalExp
→ Recommended for a new S6 server: 100x-500x
→ 100x: slower progression, more time played per level
→ 500x: faster, players reach endgame quicker
→ "Alex" style (3x): extreme slow, nostalgic community
DROP RATE:
→ Controls the probability of items dropping from monsters
→ Common parameter: DropMultiplier, DropRate
→ Too high: players find everything quickly, economy collapses
→ Too low: players get discouraged
→ Recommended starting point: same multiplier as EXP (if EXP is 100x, start Drop at 100x)
RESET SYSTEM:
→ When a character reaches the level cap (400 in S6), they can "reset" back to 1
→ Parameters: ResetLevel (usually 400), ResetPoints (stat points gained per reset)
→ Some distributions have MaxReset (maximum number of resets)
→ Reset system significantly affects server longevity — more resets = more content to do
ZEN (GOLD) RATE:
→ Amount of zen dropped by monsters
→ Usually separate from the item drop rate
→ Match zen drops to item prices in stores to maintain a functional economy
Step 4 — Configure events
EVENT CONFIGURATION IN SEASON 6:
EVENTS INCLUDED IN S6:
→ Blood Castle (BC): 7 levels, runs every 2 hours
→ Devil Square (DS): 7 levels, runs every 2 hours (offset from BC)
→ Chaos Castle (CC): 7 levels
→ Castle Siege (CS): weekly event — one castle, guild wars
→ Crywolf: weekly defense event
→ Kanturu: runs during specific schedules
→ Illusion Temple (IT): PvP event, 6 levels
SCHEDULE CONFIGURATION:
→ Most events have time-based schedules in their .ini files or in EventServer.ini
→ Example for Blood Castle (BC) in a typical S6:
BC runs at: 00:30, 02:30, 04:30... (every 2 hours, at the 30-minute mark)
DS runs at: 01:30, 03:30, 05:30... (every 2 hours, offset from BC)
BASIC EVENT SETTINGS:
[BloodCastle]
Enable = 1 ← 1 = enabled, 0 = disabled
Interval = 120 ← minutes between events (120 = every 2 hours)
[DevilSquare]
Enable = 1
Interval = 120
ENABLING/DISABLING EVENTS:
→ For a new server, enable all S6 events from the start
→ Castle Siege requires guild setup (minimum player count to contest)
→ Consider disabling CS for the first 1-2 weeks until guilds form
→ Crywolf is linked to Castle Siege — disable together or configure independently
Step 5 — Correct startup order and testing
STARTUP PROCEDURE:
MANDATORY ORDER:
1. Verify SQL Server service is Running (services.msc)
2. Start DataServer.exe → wait for it to connect to SQL (watch the console)
3. Start JoinServer.exe → watch for "Connected" or "Ready" message
4. Start ConnectServer.exe → watch for "Listening on port 44405" or similar
5. Start GameServer.exe → takes 30-60 seconds to load all maps and monsters
6. Start EventServer.exe (if separate from GameServer)
SIGNS OF SUCCESSFUL STARTUP:
→ DataServer: shows DB connection confirmation
→ JoinServer: shows listening or ready message
→ ConnectServer: shows "port 44405 bound" or similar
→ GameServer: shows all maps loaded (Lorencia, Dungeon, Devias, Noria, etc.)
The game is ready when all maps finish loading
TESTING LOCALLY:
→ Configure the client to connect to 127.0.0.1
→ Open the game client → "Connect" should work (no "Connect Fail")
→ Log in with a test account
→ Create a character
→ Kill a monster → items should drop
→ Leave the game and log back in → character should be saved (same position, items)
IF GAMESERVER CLOSES INSTANTLY:
→ Open the GameServer log file (GS_Log.txt or similar in the GS folder)
→ The last lines say exactly what failed
→ Most common: DataServer not running, SQL connection failed, port in use
Reading server log files
DIAGNOSTIC INFORMATION IN LOGS:
WHERE LOGS ARE:
→ Each MuServer component usually creates a log in its folder
→ Common log file names:
GameServer: GS_Log.txt, Server_Log.txt, or /logs/ folder
DataServer: DS_Log.txt
ConnectServer: CS_Log.txt
→ Some distributions use a single /ServerLog/ folder for all components
WHAT TO LOOK FOR:
→ [ERROR] or [FAIL] entries → something failed
→ "Cannot connect to" → network/DB connection issue
→ "Port XXXX already in use" → another process using the port
→ "Cannot open file" → a config file or game data file is missing
→ Timestamp gaps → component hung (stopped processing) before restarting
READING LOGS IN REAL TIME:
→ In PowerShell: Get-Content -Path "GS_Log.txt" -Wait
→ In CMD: type GS_Log.txt (shows file at that moment)
→ Or simply watch the console window of each component
start DataServer.exe, timeout /t 10 /nobreak, start JoinServer.exe, timeout /t 10 /nobreak, start ConnectServer.exe, timeout /t 15 /nobreak, start GameServer.exe. This prevents startup order mistakes and makes server reboots repeatable.Continue with the SQL Server configuration tutorial (ODBC and database setup for the connection this guide uses), the event configuration tutorials (Castle Siege and Crywolf have separate detailed guides), and the common errors tutorial (for diagnosing specific startup failures).
Frequently asked questions
What is the correct startup order for MuServer components?
The correct order is: (1) SQL Server service must already be running. (2) DataServer — establishes the bridge between the game server and the database. (3) JoinServer — handles login authentication. (4) ConnectServer — receives player connections and routes them to the GameServer. (5) GameServer — the actual game engine. (6) EventServer — manages events like Blood Castle, Devil Square, etc. Starting GameServer before DataServer is the most common cause of instant GameServer crash on startup.
What ports does MuServer use?
The most common defaults for Season 6: ConnectServer on TCP 44405 (the first port players connect to), GameServer on TCP 55901 (the game logic port, can vary between subservers if multiple GameServers run), DataServer usually on an internal port (not exposed to players). These must match: the .ini configuration files, the Windows Firewall inbound rules, and the router's port forwarding table (for home servers).
How do I set EXP, Drop, and Reset rates?
These are usually in GameServer.ini or a dedicated ServerInfo.ini file in the GameServer folder. Common parameters: ExpMultiplier or EXPRate for experience, DropMultiplier or DropRate for item drop chance, and ResetLevel for the level at which players can reset. The exact parameter names vary by distribution — check the distribution's readme or look for comments in the .ini file.
What is the DataServer and why is it separate from the GameServer?
DataServer acts as a middleware between the GameServer and SQL Server. The GameServer doesn't talk directly to SQL — it sends data requests to DataServer, which translates them into SQL queries, executes them, and returns the results. This architecture reduces SQL load and allows multiple GameServer instances to share one DataServer. It's the component that requires the ODBC DSNs.