How to Create and Configure MU Online Season 9 Server
Complete guide to install, configure, and run a MU Online Season 9 private server from scratch, covering SQL Server, GameServer, and ConnectServer setup.
Season 9 Overview
MU Online Season 9 brought significant improvements over S6, including the expanded Master Level system, new maps such as Kanturu Relics and La Cleon, and refinements to the item socket system. The server architecture retains the classic components — ConnectServer, DataServer, and GameServer — but uses dedicated binaries and a database schema specific to this season.
Prerequisites
Before starting, ensure the following are installed and configured:
- Windows Server 2012/2016/2019 or Windows 10/11 (64-bit)
- SQL Server 2008 R2 / 2012 / 2014 (Express or Standard)
- SQL Server Management Studio (SSMS)
- .NET Framework 3.5 and 4.8
- MuServer Season 9 package (GameServer, ConnectServer, DataServer, EventServer)
- Open ports: 44405 (ConnectServer), 55901 (GameServer internal)
Step 1 — Prepare the Database
1.1 Create the main databases
Open SSMS, connect to the local instance, and run:
CREATE DATABASE MuOnline
COLLATE Latin1_General_CI_AS;
GO
CREATE DATABASE MuOnline_Event
COLLATE Latin1_General_CI_AS;
GO
1.2 Import the server SQL scripts
In your MuServer S9 package, locate the DatabaseScript/ directory and execute the scripts in order via SSMS (File → Open → Script):
01_CreateTables.sql— creates all base tables02_StoredProcedures.sql— stored procedures for login, items, and characters03_DefaultData.sql— initial NPC, shop, and event data04_EventTables.sql— Blood Castle, Devil Square, Chaos Castle tables
-- Verify that the main tables were created correctly
USE MuOnline;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_NAME;
You should see at least: AccountCharacter, Character, Guild, MEMB_INFO, MuCash, warehouse.
1.3 Create the SQL server user
USE master;
GO
CREATE LOGIN muonline_user WITH PASSWORD = 'YourStrongPassword123!',
DEFAULT_DATABASE = MuOnline,
CHECK_EXPIRATION = OFF,
CHECK_POLICY = OFF;
GO
USE MuOnline;
CREATE USER muonline_user FOR LOGIN muonline_user;
EXEC sp_addrolemember 'db_owner', 'muonline_user';
GO
USE MuOnline_Event;
CREATE USER muonline_user FOR LOGIN muonline_user;
EXEC sp_addrolemember 'db_owner', 'muonline_user';
GO
sa as the server connection user in production. Always create a dedicated user with a strong password. The sa login should be disabled after installation.Step 2 — Server Directory Structure
Organize the binaries in the following layout (adjust the drive as needed):
C:\MuServer\
├── ConnectServer\
│ ├── ConnectServer.exe
│ └── ConnectServer.cfg
├── DataServer\
│ ├── DataServer.exe
│ └── DSConfig.cfg
├── GameServer\
│ ├── GameServer.exe
│ ├── GameServer.ini
│ └── Data\
│ ├── Events\
│ ├── Maps\
│ └── ItemBags\
└── EventServer\
├── EventServer.exe
└── EventServer.cfg
Step 3 — Configure the ConnectServer
Open ConnectServer\ConnectServer.cfg in a text editor (Notepad++ recommended):
[ConnectServer]
Port=44405
MaxUser=1000
ServerIP=0.0.0.0
[GameServer1]
ServerCode=0
ServerName=Server 1
ServerIP=127.0.0.1
ServerPort=55901
Type=0
NonPvP=0
Port=44405— the port the game client connects toServerIP=0.0.0.0— listens on all network interfacesServerCode=0— must match the code configured in the GameServer
[GameServer2], [GameServer3] blocks incrementing the ServerCode. Each GameServer must run on a different port (55902, 55903, etc.).Step 4 — Configure the DataServer
Open DataServer\DSConfig.cfg:
[ODBC]
DSN=MuOnline
UserID=muonline_user
Password=YourStrongPassword123!
[Server]
DataServerPort=55980
GameServerPort=55901
MaxUser=5000
The DataServer handles all database communication. It must start before the GameServer.
Step 5 — Configure the GameServer
5.1 Main configuration — GameServer.ini
[GameServerInfo]
ServerCode=0
ServerName=ViciadosMU S9
Port=55901
MaxUser=1000
Season=9
Episode=2
[DataServer]
DataServerIP=127.0.0.1
DataServerPort=55980
[ConnectServer]
ConnectServerIP=127.0.0.1
ConnectServerPort=55910
[GameRate]
ExpRate=100
DropRate=30
MasterExpRate=50
ZenRate=100
[PKSystem]
PKClear=1
PKLevel=3
MaxConnectPerIP=3
5.2 Configure experience rates per level
Edit GameServer\Data\ExpTable.cfg to adjust XP per level individually:
; Format: Level,RequiredExp
1,0
2,9000
3,18000
...
400,9500000000
5.3 Configure Master Level
In GameServer\Data\MasterLevel\MasterSkillTree.cfg, verify that Master Level is enabled:
[MasterLevel]
Enable=1
MaxMasterLevel=400
MasterExpMultiplier=1
PointsPerLevel=1
Step 6 — Configure Events in Season 9
Blood Castle (maps 11-17 in S9)
Edit GameServer\Data\Events\BloodCastle.cfg:
[BloodCastle]
Enable=1
BCLevel1_OpenTime=00:00,03:00,06:00,09:00,12:00,15:00,18:00,21:00
BCLevel1_CloseTime=00:20,03:20,06:20,09:20,12:20,15:20,18:20,21:20
BCLevel7_OpenTime=01:00,04:00,07:00,10:00,13:00,16:00,19:00,22:00
BCLevel7_CloseTime=01:20,04:20,07:20,10:20,13:20,16:20,19:20,22:20
MaxPlayersPerEntry=15
Devil Square
Edit GameServer\Data\Events\DevilSquare.cfg:
[DevilSquare]
Enable=1
DSLevel1_OpenTime=00:30,04:30,08:30,12:30,16:30,20:30
DSLevel5_OpenTime=02:00,06:00,10:00,14:00,18:00,22:00
OpenDuration=20
MaxPlayersPerEntry=10
Step 7 — Register ODBC Connection Strings
In Windows, go to Control Panel → Administrative Tools → ODBC Data Sources (64-bit):
- Click Add → select SQL Server Native Client 10.0 (or 11.0 for SQL 2012+)
- Data Source Name:
MuOnline - Server:
(local)or.\SQLEXPRESS - SQL Authentication: user
muonline_userand the configured password - Default database:
MuOnline - Click Test Connection — it should return success
Repeat the process to create the MuOnline_Event data source pointing to the event database.
%SystemRoot%\system32\odbcad32.exe) for modern servers. The 32-bit ODBC (%SystemRoot%\SysWOW64\odbcad32.exe) is only needed if your binaries are 32-bit — check GameServer.exe with Process Monitor to confirm.Step 8 — Startup Order and Launch Scripts
Create the file C:\MuServer\StartServer.bat:
@echo off
title ViciadosMU - Season 9 Starter
echo [1/4] Starting DataServer...
start "DataServer" /D "C:\MuServer\DataServer\" DataServer.exe
timeout /t 5 /nobreak >nul
echo [2/4] Starting ConnectServer...
start "ConnectServer" /D "C:\MuServer\ConnectServer\" ConnectServer.exe
timeout /t 3 /nobreak >nul
echo [3/4] Starting GameServer...
start "GameServer" /D "C:\MuServer\GameServer\" GameServer.exe
timeout /t 8 /nobreak >nul
echo [4/4] Starting EventServer...
start "EventServer" /D "C:\MuServer\EventServer\" EventServer.exe
echo.
echo All services started. Check the opened windows.
pause
The startup order is mandatory: DataServer → ConnectServer → GameServer → EventServer.
Step 9 — Additional Database Configuration
Set GM and Admin via SQL
USE MuOnline;
-- Make an account a GM
UPDATE MEMB_INFO
SET memb_guar = 1, bloc_code = 'N'
WHERE memb___id = 'youraccount';
-- Set the GM level on the character
UPDATE Character
SET CtlCode = 8
WHERE Name = 'YourCharacter';
-- CtlCode: 0=normal, 1=partial GM, 8=full GM
Configure the Cash Shop (MuCash)
-- Add Cash to an account
UPDATE MuCash
SET WCoinC = WCoinC + 10000
WHERE AccountID = 'youraccount';
-- Check balance
SELECT AccountID, WCoinC, WCoinP
FROM MuCash
WHERE AccountID = 'youraccount';
Common Troubleshooting
| Error | Likely cause | Solution |
|---|---|---|
DataServer: Connection Failed | ODBC not configured or wrong password | Test the ODBC data source in the Windows panel |
GameServer: Connect to DS Failed | DataServer did not start first | Wait 10s after DataServer before starting GS |
| Client stalls at "Connecting..." | Port 44405 is blocked | Open the port in Windows Firewall and router |
| Character progress not saved | Stored procedure error | Re-run 02_StoredProcedures.sql in SSMS |
| Master Level tab missing | MasterLevel.Enable=0 | Enable it in MasterSkillTree.cfg |
LogLevel=3 to GameServer.ini. Logs are written to GameServer\Log\ and show every connection, disconnection, and database error in real time.Next Steps
With the server running, consider:
- Setting up a registration website with webEngineNET or ASP.NET
- Adjusting drops per map in
GameServer\Data\MonsterSetBase.cfg - Configuring a custom Reset system via the
WZ_RESET_CHARACTERstored procedure - Implementing automated database backups with SQL Server Agent
Perguntas frequentes
Which SQL Server version should I use for Season 9?
Season 9 is compatible with SQL Server 2008 R2, 2012, and 2014. SQL Server 2008 R2 Express (free) is recommended for its stability with MuServer S9 stored procedures. Avoid SQL Server 2000 as it does not support the newer data types used in the S9 database schema.
What is the default ConnectServer port in Season 9?
The ConnectServer listens on port 44405 (TCP) by default. The GameServer communicates internally via port 55901. Make sure to open port 44405 in the Windows Firewall and your router for external player connections.
The server starts but players disconnect when entering the game. What should I check?
This usually indicates a version mismatch between the client and server. Check the Season/Episode field in GameServer/GameServer.ini — the value must match the Main.exe version. Also confirm the DataServer is running before the GameServer starts.
How do I increase the account limit per IP in Season 9?
Open GameServer/GameServer.ini and find the MaxConnectPerIP key. The default is usually 2 or 3. Change it to the desired value (e.g., MaxConnectPerIP=5) and restart the GameServer. For per-account control, use the MEMB_INFO table in the database.