How to Create a MU Online Season 7–10 Server — Complete Guide
Step-by-step guide to setting up a private MU Online server for Season 7 or Season 10, covering software, database, configuration, and launch.
What You Need Before You Start
Running a MU Online private server requires assembling several software components that must all work together. Before writing a single line of configuration, make sure you have the following ready on your host machine.
Minimum hardware requirements
- CPU: 4 cores (Intel or AMD, x86-64)
- RAM: 4 GB (8 GB recommended for Season 10 with full map set)
- Storage: 40 GB free (SSD strongly preferred for database I/O)
- Network: stable upload of at least 10 Mbps; a static or reserved IP address
Required software components
- Windows Server 2019 or 2022 (64-bit)
- Microsoft SQL Server 2019 (Express for testing, Standard for production)
- SQL Server Management Studio (SSMS) for database work
- Visual C++ Redistributable packages: 2010, 2013, 2015–2022 (x86 and x64)
- .NET Framework 3.5 and 4.8
- A MU Online server emulator core that matches your target season (Season 7 or Season 10)
- The client data files corresponding to the same season
Step 1 — Install and Configure SQL Server
The database is the foundation of the server. Every character, account, item, guild, and log record lives here.
1.1 Install SQL Server
Run the SQL Server installer and choose the Database Engine Services feature. During setup, select Mixed Mode Authentication and set a strong sa password — you will reference this in every server component's connection string.
After installation, open SQL Server Configuration Manager and ensure the TCP/IP protocol is enabled for the SQL Server instance. Set the TCP port to 1433 (the default). Restart the SQL Server service.
1.2 Restore the server databases
A standard Season 7 or Season 10 emulator distribution ships with two or more database backup files (.bak). Common names are MuOnline.bak and MeSetData.bak. Restore each one through SSMS:
- Right-click Databases → Restore Database
- Select Device, browse to the
.bakfile - Set the destination database name (e.g.,
MuOnline) - Click OK and wait for the restore to complete
1.3 Create a dedicated SQL login
Avoid using the sa account for day-to-day server connections. Create a dedicated login:
-- Create login and map it to the restored databases
CREATE LOGIN muserver WITH PASSWORD = 'StrongP@ssw0rd!';
USE MuOnline;
CREATE USER muserver FOR LOGIN muserver;
EXEC sp_addrolemember 'db_owner', 'muserver';
USE MeSetData;
CREATE USER muserver FOR LOGIN muserver;
EXEC sp_addrolemember 'db_owner', 'muserver';
Step 2 — Configure the Server Components
A typical MU Online emulator is split into several executable processes. Understanding what each one does prevents configuration confusion.
| Process | Purpose | Default Port |
|---|---|---|
| ConnectServer | Manages the server list shown at login | 44405 |
| JoinServer | Handles account authentication | 55557 |
| DataServer | Reads/writes to SQL Server on behalf of others | 55901 |
| GameServer | The actual game world; one per map zone | 55901+ |
| WebServer (optional) | Web-based admin panel | 8080 |
2.1 DataServer configuration
Open DataServer.ini (or the XML equivalent in your distribution) and set the database connection parameters:
# DataServer.ini — Database connection block
[DATABASE]
IP → 127.0.0.1 ; SQL Server host (localhost if on same machine)
Port → 1433 ; SQL Server TCP port
DBName → MuOnline ; Main game database name
DBUser → muserver ; SQL login created in Step 1.3
DBPass → StrongP@ssw0rd! ; Password for that login
DBTimeout → 30 ; Connection timeout in seconds
[MESETDATA]
IP → 127.0.0.1
DBName → MeSetData
DBUser → muserver
DBPass → StrongP@ssw0rd!
2.2 ConnectServer configuration
The ConnectServer tells the client which GameServer zones are available. Edit ConnectServer.ini:
[NETWORK]
PublicIP → 0.0.0.0 ; Bind to all interfaces
Port → 44405 ; Client connects here first
[SERVERLIST]
MaxServers → 10
UpdateInterval → 5000 ; ms between list refresh cycles
2.3 GameServer configuration (Season selector)
Season selection lives inside the GameServer config. Locate the section that controls version and episode:
[VERSION]
Season → 7 ; Change to 10 for Season 10
Episode → 3 ; Sub-episode within the season
ServerCode → 0 ; Unique ID per zone (0, 1, 2 …)
ServerName → "Lorencia Zone"
[NETWORK]
PublicIP → YOUR.PUBLIC.IP.HERE ; Replace with your actual public IPv4
Port → 55901
MaxConnections → 500
> [!WARNING] > The PublicIP field in the GameServer config must be your actual public IPv4 address, not 127.0.0.1. If players connect from outside your local network and this value is wrong, they will connect to ConnectServer, receive a server list, but immediately disconnect when they try to enter the game world.
Step 3 — Open Firewall Ports
Windows Firewall blocks incoming connections by default. You need inbound rules for every port each server component listens on.
Open PowerShell as Administrator and run:
# Open MU Online server ports in Windows Firewall
$ports = @(44405, 55557, 55901, 55902, 55903)
foreach ($port in $ports) {
New-NetFirewallRule `
-DisplayName "MU Online Port $port" `
-Direction Inbound `
-Protocol TCP `
-LocalPort $port `
-Action Allow `
-Profile Any
}
If your server is behind a home router, you must also configure port forwarding (NAT) rules in the router's admin panel, pointing each of the above ports to the internal LAN IP of your server machine.
> [!TIP] > After creating the firewall rules, use an external port-check tool (run from another machine or phone) to confirm the ports are reachable before blaming the server software. Testing from the server machine itself will always succeed because loopback traffic bypasses firewall rules.
Step 4 — Start the Server in the Correct Order
The processes have dependencies. Starting them out of order causes connection failures that are hard to diagnose.
Correct startup sequence:
- Start SQL Server (should already be running as a Windows Service)
- Start DataServer — wait until the log shows "Database connection established"
- Start JoinServer
- Start ConnectServer
- Start GameServer (one instance per zone)
Each process writes to its own log file in the Log/ subdirectory. Always watch these logs during the first startup to catch configuration errors early.
Step 5 — Create the First Admin Account
Once all processes are running, connect through the game client to verify the server is alive. Then grant admin privileges to your account directly in the database:
-- Grant admin level to an existing account
USE MuOnline;
UPDATE MEMB_INFO
SET memb_level = 1 -- 1 = GM, higher values may unlock more tools
WHERE memb_id = 'youraccount';
Reconnect after the update. Most emulators require a fresh login for the permission change to take effect.
Ongoing Administration Tips
- Back up the database daily. Use SQL Server Agent or a scheduled PowerShell script to run
BACKUP DATABASE MuOnline TO DISK = '...'every night. - Monitor server logs. Unusual spikes in connection attempts or repeated errors in the GameServer log often indicate bots or a configuration issue before it becomes a crisis.
- Keep components in sync. When you update the emulator binaries, also update the database schema using the migration scripts the emulator author provides. Running new code against an old schema causes silent data corruption.
- Separate testing from production. Always test configuration changes on a local copy before applying them to a live server with active players.
Perguntas frequentes
What operating system should I use for a MU Online private server?
Windows Server 2019 or Windows Server 2022 (64-bit) are the most compatible options. Most emulator cores and their required Visual C++ runtimes are built and tested against Windows Server. A dedicated machine or a VPS with at least 4 GB RAM and 4 CPU cores is the minimum recommended specification.
What version of SQL Server do I need?
SQL Server 2019 Express is sufficient for small communities (up to ~50 concurrent players). For larger populations, SQL Server 2019 Standard or Developer Edition gives better query performance and removes the 10 GB database size cap that Express imposes.
How do I change the server season from 7 to 10?
Season selection is controlled inside the GameServer and DataServer configuration files. In most emulator distributions you change the Season and Episode values in the main server INI or XML config. You must also use the matching client files (main.exe, data files) compiled for that season — mixing seasons between server and client causes disconnection errors.
Why can't players connect after I open the ports?
The most common causes are: (1) the GameServer IP in connectlist.bmd or the join server address file still points to 127.0.0.1 instead of your public IP, (2) the Windows Firewall rule was created for the wrong profile (Private instead of Public/Domain), or (3) your router NAT rule is forwarding to the wrong internal IP. Verify each layer independently using a port scanner before troubleshooting the server software.