How to Create a MU Online Season 15–17 Server — Complete Guide
Step-by-step guide to setting up a MU Online Season 15–17 private server: SQL database, GameServer, ConnectServer, and core configuration.
Overview and Architecture
Setting up a MU Online private server for Season 15 through Season 17 is a multi-component process. Unlike earlier seasons that used a simpler two-tier architecture, modern server packages split responsibilities across four main services:
- ConnectServer — the entry point that clients connect to first; it routes players to available GameServer instances.
- GameServer — the core game process; one instance handles one game world (server channel).
- DataServer — manages the database connection layer between GameServer and SQL Server.
- JoinServer — handles account authentication before the client enters the game world.
Understanding how these four processes communicate is essential before touching any configuration file. They all run on the same machine in a standard single-server setup, communicating over localhost TCP sockets.
Step 1 — Preparing the Operating System
Install Windows Server 2019 or 2022 with the Desktop Experience option. After installation, apply all Windows Updates before installing any server software.
Install the following prerequisites in order:
- Microsoft Visual C++ Redistributable — both x86 and x64 versions for Visual Studio 2015–2022.
- DirectX End-User Runtime — required by some GameServer binaries even on headless servers.
- .NET Framework 4.8 — needed by launcher and panel utilities included in most Season 15–17 packages.
- SQL Server 2019 — install with default instance name
MSSQLSERVER, enable TCP/IP protocol in SQL Server Configuration Manager, and set SQL Server Browser to start automatically.
After SQL Server installation, open SQL Server Configuration Manager, navigate to SQL Server Network Configuration → Protocols for MSSQLSERVER, enable TCP/IP, and restart the SQL Server service.
> [!WARNING] > Do not skip enabling TCP/IP in SQL Server Configuration Manager. The default installation leaves TCP/IP disabled, which will cause DataServer to fail silently when trying to connect to the database — a common source of confusion for new server administrators.
Step 2 — Database Setup
Open SQL Server Management Studio (SSMS) and connect to your local instance. You will need to create the MU database and run the initialization scripts included in your server package.
Most Season 15–17 packages ship with a DBScript or SQL folder containing numbered .sql files. Run them in ascending numeric order:
SQL script execution order example:
01_create_database.sql → creates MuOnline database and sets compatibility level
02_create_tables.sql → creates all game tables (Character, Account, Item, etc.)
03_stored_procedures.sql → installs SP_GetCharacter, SP_SaveCharacter, and ~200 others
04_initial_data.sql → seeds shop items, event schedules, map data
05_gamemaster_account.sql → creates the first GM account (change credentials immediately)
After running all scripts, create a dedicated SQL login for the server processes:
-- Create a login with SQL authentication
CREATE LOGIN mu_server WITH PASSWORD = 'YourStrongPassword123!';
-- Map the login to the MuOnline database
USE MuOnline;
CREATE USER mu_server FOR LOGIN mu_server;
-- Grant required permissions (db_owner for simplicity on private servers)
ALTER ROLE db_owner ADD MEMBER mu_server;
> [!TIP] > Use a strong, unique password for the SQL login. This credential will be stored in plaintext in DataServer configuration files — limit file system access to the server folder using Windows NTFS permissions so only the administrator account can read it.
Step 3 — Configuring DataServer
DataServer is the bridge between GameServer and SQL Server. Locate DataServer.ini (or DSConfig.ini depending on the package) and configure the connection block:
[DataServer]
ServerPort → 55980
MaxConnections → 50
LogMode → 1
[ODBC]
DSN → MuOnline
UserID → mu_server
Password → YourStrongPassword123!
DBName → MuOnline
ServerAddress → 127.0.0.1
Port → 1433
Timeout → 30
[GameServer]
ConnectIP → 127.0.0.1
ConnectPort → 55980
MaxGameServer → 10
Start DataServer.exe and check the console output. A successful startup shows:
[DataServer] Listening on port 55980
[DataServer] Database connection established: MuOnline
[DataServer] Ready to accept GameServer connections
If you see [ODBC] Connection failed, recheck the SQL login credentials and confirm TCP/IP is enabled in SQL Server Configuration Manager.
Step 4 — Configuring ConnectServer and JoinServer
JoinServer (JoinServer.ini) handles account login validation. Its key settings:
[JoinServer]
ServerPort → 55970
DataServerIP → 127.0.0.1
DataServerPort → 55980
MaxConnections → 2000
AccountExpireTime → 30
ConnectServer (ConnectServer.ini) tells clients which GameServer instances exist:
[ConnectServer]
ServerPort → 44405
ClientTimeout → 60
MaxConnections → 10000
ListenIP → 0.0.0.0
[GameServer00]
GameServerCode → 0
GameServerIP → YOUR_PUBLIC_IP
GameServerPort → 55901
GameServerName → Lorencia-1
Replace YOUR_PUBLIC_IP with your server's actual public IPv4 address. Clients use this IP to connect to the GameServer after the ConnectServer responds to their initial handshake.
Step 5 — Configuring GameServer
GameServer has the most configuration files. The essential ones are:
GameServer.ini — core process settings:
[GameServer]
ServerCode → 0
ServerPort → 55901
DataServerIP → 127.0.0.1
DataServerPort → 55980
JoinServerIP → 127.0.0.1
JoinServerPort → 55970
MaxPlayer → 500
ServerName → Lorencia-1
ExpRate → 200
MasterExpRate → 100
DropRate → 30
ZenRate → 150
CommonServer.ini — maps, reset system, and Master Level configuration:
[MasterLevel]
MasterLevelEnable → 1
MasterMaxLevel → 400
MasterExpRate → 100
[ResetSystem]
ResetEnable → 1
ResetLevel → 400
ResetStats → 1
MaxResets → 100
Season 17-specific files also include NewPetSystem.ini for the updated pet mechanics and IllusionTemple.ini for the event scheduler — review these against your intended server configuration before launch.
Step 6 — Startup Order and Testing
Services must be started in a specific order. Starting them out of sequence causes connection refused errors between processes:
Correct startup sequence:
1. SQL Server service → must be running before DataServer connects
2. DataServer.exe → connects to SQL, then listens for GameServer
3. JoinServer.exe → connects to DataServer for account validation
4. ConnectServer.exe → begins accepting client connections
5. GameServer.exe (per channel) → connects to DataServer and JoinServer
After all services are running, connect with a local MU client pointed at 127.0.0.1:44405 and log in with the GM account created in the SQL scripts. Walk through Lorencia and confirm NPC spawns, map transitions, and the shop system respond correctly before opening the server to other players.
> [!TIP] > Create a .bat startup script that launches each executable with a ping 127.0.0.1 -n 4 > nul delay between them. This gives each process time to bind its port before the next one tries to connect. A 3–4 second delay between each service start is usually sufficient on modern hardware.
Final Checklist Before Going Live
- Firewall rules restrict inbound traffic to ports 44405, 55901 (and additional GameServer ports if running multiple channels) only.
- SQL Server sa account password changed and remote sa login disabled.
- GM account password changed from the default set in the SQL script.
- Log directories exist and GameServer has write permission to them.
- Automated daily backup of the MuOnline SQL database configured.
- Server clock synchronized with an NTP time server — event schedules depend on accurate system time.
Running through this checklist before publishing your server IP prevents the most common early-launch problems that force emergency maintenance during peak hours.
Perguntas frequentes
What operating system is recommended for a Season 15–17 server?
Windows Server 2019 or Windows Server 2022 (64-bit) are the most stable choices. Both fully support SQL Server 2019, the .NET runtime required by modern MU server files, and the network stack needed for multi-port GameServer operation. Avoid Windows Server 2016 for Season 17 files because certain DirectX redistributables behave differently.
Which SQL Server version works best with Season 15–17 files?
SQL Server 2019 (Express or Standard) is the recommended version. It supports all stored procedures used by Season 15–17 server packages, handles larger databases without the 10 GB Express cap being an immediate concern for new servers, and receives active security patches. SQL Server 2014 is the minimum version that will work, but it lacks performance improvements relevant to large player databases.
How many CPU cores and RAM does a Season 17 server need?
For a small community (up to 100 concurrent players) a 4-core CPU with 8 GB RAM is sufficient. For 100–300 concurrent players, plan for 8 cores and 16 GB RAM. Season 17 DataServer is more memory-intensive than earlier seasons due to expanded item and skill tables. Allocate at least 2 GB RAM exclusively to SQL Server.
What ports must be opened in the firewall for a Season 15–17 server?
ConnectServer listens on TCP 44405. GameServer instances use TCP 55901 (or the port defined in GameServer.ini per gameserver index). DataServer uses an internal port (default 55980) that does not need to be publicly exposed. The web panel, if used, typically runs on TCP 80 or 8080. Always apply firewall rules that whitelist only these specific ports rather than disabling the firewall entirely.