Brazil's biggest MU Online portal — since 2003
Tutorial Advanced Tutoriais

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.

VI ViciadosMU Team · Updated on 3 jul 2026 · ⏱ 12 min read

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.

Nota: This tutorial covers MuServer Season 9 Episode 2 (the most stable version for private servers). Database files and binaries vary by distribution package; adapt the paths to match your own package.

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):

  1. 01_CreateTables.sql — creates all base tables
  2. 02_StoredProcedures.sql — stored procedures for login, items, and characters
  3. 03_DefaultData.sql — initial NPC, shop, and event data
  4. 04_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
Atenção: Never use 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 to
  • ServerIP=0.0.0.0 — listens on all network interfaces
  • ServerCode=0 — must match the code configured in the GameServer
Dica: For multiple GameServers, add [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
Nota: In Season 9, the default maximum level is 400 for regular characters and 800 with Master Level active. Master Level begins after a character reaches level 400, subject to your configuration in the GameServer.

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):

  1. Click Add → select SQL Server Native Client 10.0 (or 11.0 for SQL 2012+)
  2. Data Source Name: MuOnline
  3. Server: (local) or .\SQLEXPRESS
  4. SQL Authentication: user muonline_user and the configured password
  5. Default database: MuOnline
  6. Click Test Connection — it should return success

Repeat the process to create the MuOnline_Event data source pointing to the event database.

Atenção: Always use the 64-bit ODBC administrator (%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

ErrorLikely causeSolution
DataServer: Connection FailedODBC not configured or wrong passwordTest the ODBC data source in the Windows panel
GameServer: Connect to DS FailedDataServer did not start firstWait 10s after DataServer before starting GS
Client stalls at "Connecting..."Port 44405 is blockedOpen the port in Windows Firewall and router
Character progress not savedStored procedure errorRe-run 02_StoredProcedures.sql in SSMS
Master Level tab missingMasterLevel.Enable=0Enable it in MasterSkillTree.cfg
Dica: Enable verbose logging in the GameServer by adding 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_CHARACTER stored 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.

VI

ViciadosMU Team

Equipe editorial do ViciadosMU — portal de MU Online no ar desde 2003.

Keep reading

Related articles