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

How to Create a MU Online Season 8–12 Server — Complete Guide

Step-by-step guide to setting up a private MU Online server for Season 8 or Season 12 — covering SQL, files, ports, and core configuration.

VI ViciadosMU Team · Updated on 4 jul 2026 · ⏱ 18 min read

Understanding the Server Architecture

A private MU Online server is not a single executable — it is a stack of cooperating services. Before touching any configuration file, you need a clear mental model of how the pieces fit together.

The ConnectServer is the public entry point. Every client connects to this service first to obtain a list of available game servers. It hands the client an IP address and port, then steps out of the way.

The DataServer (sometimes called DBServer) owns all persistent data. It maintains an open connection to SQL Server and handles every read/write operation: accounts, characters, items, guilds, and castle ownership. No other service writes directly to the database.

The GameServer runs the world simulation — maps, monsters, skill calculations, and player interactions. It talks to the DataServer for persistence and to the ConnectServer for registration. Season 12 servers often split this further with a dedicated JoinServer that manages login queues and cross-server communication.

Understanding these roles prevents the most common beginner mistakes: pointing two services at the wrong ports, or running the DataServer with a SQL account that lacks write permissions.


System Requirements and Preparation

Before installing any server component, prepare the host machine.

Operating system. Windows Server 2016 or 2019 is the most stable foundation. Desktop editions (Windows 10, Windows 11) work for local testing but are not suitable for a production environment with real players due to connection limits imposed by the OS.

SQL Server. Install Microsoft SQL Server (Express is sufficient for testing; Standard or Developer editions for production). During setup, enable Mixed Mode Authentication so that SQL logins work alongside Windows authentication. Note the instance name — you will need it when building ODBC connection strings.

ODBC drivers. Install the ODBC driver that matches your SQL Server version. Open ODBC Data Sources (64-bit), create a System DSN named MuOnline, and point it at your SQL instance. Test the connection before proceeding.

Visual C++ Redistributables. Server executables compiled for Season 8 typically require VC++ 2005 and 2008 Redistributable packages. Season 12 binaries usually require VC++ 2015–2022. Install both x86 and x64 versions of each.

Nota: Run all server executables as Administrator, or configure them with elevated privileges via the executable's Compatibility tab. Many config files are written to the same directory as the executable, and UAC will silently block writes to Program Files paths.

Database Setup

With SQL Server running and a DSN created, restore or attach the MuOnline database backup that ships with your server files. This is typically a .bak file restored via SQL Server Management Studio (SSMS), or a set of .mdf/.ldf files attached directly.

After the database is online, create a dedicated SQL login:

-- Create login and map to MuOnline database
CREATE LOGIN MuAdmin WITH PASSWORD = 'StrongPassword#2026';
USE MuOnline;
CREATE USER MuAdmin FOR LOGIN MuAdmin;
ALTER ROLE db_owner ADD MEMBER MuAdmin;

-- Verify stored procedures are present
SELECT name FROM sys.procedures WHERE name LIKE 'WZ_%' ORDER BY name;
-- Expected: WZ_ACCOUNT_CHECK, WZ_GET_CHAR_INFO, WZ_SAVE_CHAR, etc.

Update the ODBC DSN to use this SQL login. Open the DSN, click Next until you reach the authentication screen, select SQL Server authentication, and enter the credentials above.

> [!WARNING] > Never use the sa account for server files in production. If the sa credentials leak through a config file, an attacker has full SQL Server access including the ability to execute OS commands via xp_cmdshell. A scoped db_owner login limits the blast radius.


Configuring the ConnectServer

The ConnectServer configuration is typically a plain-text or INI file named ConnectServer.ini or CSConfig.ini. The critical settings are:

[ConnectServer]
Port           → 55901          ; client connects here first
MaxConnections → 10000          ; adjust to expected player peak

[GameServerList]
ServerCount    → 1              ; number of GameServer entries
Server0_IP     → 127.0.0.1     ; GameServer public IP (or LAN IP for local test)
Server0_Port   → 44405          ; GameServer port
Server0_Name   → Lorencia       ; displayed in server list
Server0_Code   → 0              ; must match GameServer's own ServerCode setting

> [!TIP] > When running all services on a single machine, use 127.0.0.1 for inter-service communication. When your GameServer runs on a separate physical machine, replace 127.0.0.1 with that machine's LAN IP. Never use the public WAN IP for internal service-to-service communication — it forces traffic through NAT and can cause connection resets.


Configuring the DataServer

The DataServer configuration links the service to SQL Server. Open DSConfig.ini (the filename varies by server build):

[DataServer]
Port           → 55980
MaxConnections → 500

[Database]
DSN            → MuOnline       ; must match the ODBC System DSN name exactly
User           → MuAdmin
Password       → StrongPassword#2026

[Log]
SaveLog        → 1
LogPath        → ./Log/DS/

Start the DataServer first. Watch the console window: a successful startup prints a line similar to [DataServer] Listen OK - Port 55980. Any SQL-related error at this stage is either a wrong DSN name, wrong credentials, or a missing stored procedure in the database.


Configuring the GameServer

The GameServer has the largest configuration surface. The primary file is often GameServerInfo.ini or GSConfig.ini:

[ServerInfo]
ServerCode     → 0              ; must match ConnectServer's Server0_Code
ServerName     → Lorencia
MaxPlayer      → 500

[Network]
GameServerPort → 44405
ConnectServerIP   → 127.0.0.1
ConnectServerPort → 55901
DataServerIP      → 127.0.0.1
DataServerPort    → 55980

[GamePlay]
Season         → 8              ; or 12 depending on your files
EXPRate        → 100            ; 100 = 1x, 300 = 3x
DropRate       → 100
ZenRate        → 100
MaxLevel       → 400            ; 800 for Season 12 with Master Level

Season 12 servers introduce additional blocks for MuHelper, Gens system, and Illusion Temple. Consult the documentation bundled with your specific server build for those sections.


Firewall and Port Forwarding

Open the following ports on the Windows Firewall using inbound TCP rules:

  • 55901 — ConnectServer (clients connect here first)
  • 44405 — GameServer (game traffic)
  • 55980 — DataServer (internal; block this on the router, expose only internally)

On your router, forward ports 55901 and 44405 to the server machine's local IP. The DataServer port should remain internal — only the GameServer needs to reach it.


Starting the Stack and Verifying Connectivity

Start services in this order to avoid connection errors:

  1. SQL Server (already running as a Windows service)
  2. DataServer
  3. ConnectServer
  4. GameServer

Watch each console window for error lines before advancing to the next step. Once all four are running without errors, open a MU Online client configured to point at your server's public IP on port 55901. A successful login screen with your server name in the list confirms the ConnectServer and GameServer are communicating correctly.

Nota: Season 12 clients often require a patched main.exe and a custom config.ini inside the client folder pointing to your ConnectServer IP. The client configuration file is separate from the server-side files — changes to one do not affect the other.

Common Problems and Solutions

"Cannot connect to server" at login screen. The client is not reaching the ConnectServer. Check that port 55901 is open on the firewall and forwarded on the router. Confirm the client's config points to the correct public IP.

Characters disappear after logout. The GameServer cannot write through the DataServer to SQL. Check the DataServer log for SQL timeout errors. Verify the SQL login permissions with SELECT IS_MEMBER('db_owner') inside the MuOnline database.

Monster AI freezes after a few minutes. This is a known symptom of a single-core CPU affinity setting on a multi-core host. Set the GameServer process affinity to use all available cores, or consult your server build's threading configuration.

Inventory corruption on item drop. Usually caused by a mismatch between the server-side item tables and the database stored procedures. Ensure the database backup and the server binary are from the same version of the server files.

Systematic log reading is the fastest path to any diagnosis. Every service writes timestamped entries — start there before changing configuration.

Perguntas frequentes

What are the minimum hardware requirements to run a MU Online private server?

A dedicated or virtual machine with at least 4 GB RAM, a dual-core CPU at 2.4 GHz or higher, and 50 GB of available storage is the practical minimum. For a server with more than 50 simultaneous players, 8 GB RAM and a quad-core CPU are strongly recommended to avoid lag spikes during mass PvP events and castle sieges.

Which SQL Server version works best with Season 8 and Season 12 server files?

Microsoft SQL Server 2008 R2 is the most compatible option for Season 8 server files, while Season 12 files generally support SQL Server 2012 through 2019. Always match the SQL version to what the server files were compiled against. Using a newer SQL version rarely causes problems, but an older version than required will result in missing stored procedures and broken character queries.

How do I open the necessary network ports for my MU Online server?

The core ports that must be open on your firewall and router are TCP 55901 (ConnectServer), TCP 44405 (GameServer), and TCP 55980 (DataServer). If you are running a web-based control panel or JoinServer, also open its designated port. On Windows Server, use Windows Defender Firewall with Advanced Security to create inbound rules for each port.

Why do characters fail to save after logging out?

Character save failures almost always point to a broken connection between the GameServer and the DataServer, or a SQL Server account with insufficient permissions. Verify that the ODBC DSN in the DataServer configuration points to the correct SQL instance and that the SQL login used has db_owner rights on the MuOnline database. Check the DataServer log for 'connection lost' or 'timeout' entries as a first diagnostic step.

VI

ViciadosMU Team

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

Keep reading

Related articles