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

How to configure Windows Server from scratch for MU Online

Set up a clean Windows Server for MU Online: system, runtimes, SQL Server, directories, firewall and services in the correct order until the server runs stable.

BR Bruno · Updated on Jul 10, 2024 · ⏱ 16 min read
Quick answer

A freshly provisioned Windows Server is a blank page: no runtimes, no database, useless services running and a firewall that either blocks everything or nothing. Turning that clean machine into a solid foundation for MU Online requires following a specific order — system, runtimes, SQL Server, direc

A freshly provisioned Windows Server is a blank page: no runtimes, no database, useless services running and a firewall that either blocks everything or nothing. Turning that clean machine into a solid foundation for MU Online requires following a specific order — system, runtimes, SQL Server, directories, configuration files, firewall and startup — because each step depends on the previous one. Skipping any of them usually results in the classic GameServer that opens and closes in a second. This guide walks through the complete process, from the first RDP access to the server processes coming up stable. Paths, versions and ports here are examples and vary depending on the MU package and version.

Prerequisites

  • A VPS or machine with a clean Windows Server 2019/2022 and Administrator access.
  • RDP access (public IP, username and password from the provider).
  • A compatible SQL Server installer (2017 or 2019 are safe for modern servers).
  • SQL Server Management Studio (SSMS) to administer the database.
  • The MuServer package for the desired version (ConnectServer, DataServer, GameServer, EventServer) and the .sql scripts to create/restore the database.
  • Visual C++ Redistributable packages (2010, 2013, 2015-2022, x86 and x64).
  • A grasp of the general server structure — if you do not have it yet, review the guide on how to create a MU Online server.

Part 1 — Operating system preparation

Step 1: First access and identifying the machine

Connect via RDP with the Administrator user. Open PowerShell as Administrator and rename the machine to make log reading easier, as well as adjusting the time zone:

# Rename the server (reboots at the end)
Rename-Computer -NewName "MU-PROD-01" -Restart

# After the reboot, set the Brazil time zone (UTC-3)
Set-TimeZone -Id "E. South America Standard Time"

# Check the Windows build and version
[System.Environment]::OSVersion.Version

Step 2: Update Windows before installing anything

Apply the pending updates first — installing SQL Server on top of an outdated system can cause dependency failures. Then configure Windows Update to not restart on its own, preventing the machine from going down while players are online.

# Set it to download and notify, with no automatic restart
# (via Group Policy: gpedit.msc → Windows Update)
# Computer Configuration → Administrative Templates →
# Windows Components → Windows Update →
# "Configure Automatic Updates" = option 3 (download and notify)

Step 3: Disable unnecessary services

A game server does not need search indexing, printing or app preloading. Turning them off frees CPU and I/O:

# Windows Search — unnecessary disk I/O
Set-Service -Name "WSearch" -StartupType Disabled
Stop-Service -Name "WSearch" -Force

# SysMain (Superfetch) — useless on a server
Set-Service -Name "SysMain" -StartupType Disabled
Stop-Service -Name "SysMain" -Force

# Print Spooler — no printer on a VPS
Set-Service -Name "Spooler" -StartupType Disabled
Stop-Service -Name "Spooler" -Force

Step 4: Install the Visual C++ runtimes

The MuServer binaries are compiled expecting specific runtimes. Their absence is the number-one cause of the GameServer that closes on open. Install all with the following coverage, x86 and x64:

  • Visual C++ 2010 Redistributable
  • Visual C++ 2013 Redistributable
  • Visual C++ 2015-2022 Redistributable
Dica: Even on a 64-bit Windows Server, always install the x86 versions of the runtimes: most MuServer Season 6 executables are compiled in 32 bits and depend on them.

Step 5: Add exclusions in Windows Defender

Many MuServer executables are flagged as false positives. Instead of turning off the antivirus, exclude only the server's folders and processes:

Add-MpPreference -ExclusionPath "C:\MuServer"
Add-MpPreference -ExclusionProcess "GameServer.exe"
Add-MpPreference -ExclusionProcess "ConnectServer.exe"
Add-MpPreference -ExclusionProcess "DataServer.exe"
Add-MpPreference -ExclusionProcess "EventServer.exe"

Part 2 — SQL Server installation and configuration

Step 6: Install SQL Server

Run the installer choosing the Custom installation and select, at a minimum, Database Engine Services. Configure the instance as the Default Instance (MSSQLSERVER), which removes the need to specify an instance name in the MuServer connection strings. During installation, select mixed authentication mode (SQL Server and Windows) and set a strong password for the sa user.

Step 7: Enable TCP/IP and port 1433

Open the SQL Server Configuration Manager:

  1. Expand SQL Server Network Configuration → Protocols for MSSQLSERVER.
  2. Enable TCP/IP (right-click → Enable).
  3. Double-click TCP/IPIP Addresses tab → under IPAll, set TCP Port = 1433.
  4. Restart the service in services.mscSQL Server (MSSQLSERVER).

Step 8: Cap the SQL Server memory

Without a limit, SQL Server consumes almost all the RAM and leaves the GameServer without resources. Adjust it according to the VPS total (the example below is for a 4 GB machine):

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

-- Reserve at most 2 GB for SQL on a 4 GB VPS
EXEC sp_configure 'max server memory', 2048;
RECONFIGURE;

Step 9: Create the database and the dedicated user

Never use sa in the server's connection string. Create an exclusive login:

-- Main database with the collation expected by MU
CREATE DATABASE MuOnline COLLATE Latin1_General_CI_AS;
GO
CREATE DATABASE MuOnlineLog COLLATE Latin1_General_CI_AS;
GO

-- Login dedicated to the GameServer
CREATE LOGIN muserver_user WITH PASSWORD = 'Senh@ForteExemplo2024',
    DEFAULT_DATABASE = MuOnline,
    CHECK_EXPIRATION = OFF,
    CHECK_POLICY = OFF;
GO

USE MuOnline;
GO
CREATE USER muserver_user FOR LOGIN muserver_user;
EXEC sp_addrolemember 'db_owner', 'muserver_user';
GO

Step 10: Restore or create the MuServer tables

If the package ships a .bak file, restore it; if it ships .sql scripts, run them in the order indicated by the package. The data path varies by SQL version — the example uses SQL Server 2019 (MSSQL15); on 2017 it would be MSSQL14.

USE master;
GO
RESTORE DATABASE MuOnline
FROM DISK = 'C:\MuServer\backup\MuOnline.bak'
WITH MOVE 'MuOnline' TO 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MuOnline.mdf',
     MOVE 'MuOnline_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MuOnline_log.ldf',
     REPLACE, STATS = 10;
GO

Part 3 — Organizing the server files

Step 11: Directory structure

Keep everything under a single root, which simplifies antivirus exclusions, backups and permissions:

C:\MuServer\
├── ConnectServer\
│   └── ConnectServer.exe
├── DataServer\
│   └── DataServer.exe
├── EventServer\
│   └── EventServer.exe
├── GameServer\
│   ├── Data\
│   ├── Logs\
│   └── GameServer.exe
├── backup\
└── StartAll.bat

Step 12: Configure the connection strings

Adjust the .ini files to point to the local SQL. The exact names vary by package (DBConfig.ini, DBConnectConfig.ini, DSConfig.ini). GameServer example:

[DBCONFIG]
DBServer=127.0.0.1
DBPort=1433
DBName=MuOnline
DBUser=muserver_user
DBPass=Senh@ForteExemplo2024

And the DataServer:

[DataServer]
ServerCode=0
DB_Ip=127.0.0.1
DB_Port=1433
DB_Name=MuOnline
DB_User=muserver_user
DB_Pass=Senh@ForteExemplo2024

Step 13: Point the ConnectServer to the public IP

The client connects to the GameServer via the IP the ConnectServer reports. Use the VPS public IP, never 127.0.0.1:

[ServerInfo0]
ServerCode=0
ServerName=Lorencia
GameServerIPAddress=YOUR_PUBLIC_IP
GameServerPort=55901

Part 4 — Firewall and ports

Step 14: Create the inbound rules

Open only the necessary ports. The exact ports vary by package — confirm them in the .ini files before applying:

New-NetFirewallRule -DisplayName "MU-ConnectServer" -Direction Inbound -Protocol TCP -LocalPort 44405 -Action Allow
New-NetFirewallRule -DisplayName "MU-GameServer" -Direction Inbound -Protocol TCP -LocalPort 55901-55910 -Action Allow
New-NetFirewallRule -DisplayName "MU-DataServer" -Direction Inbound -Protocol TCP -LocalPort 55960 -Action Allow
New-NetFirewallRule -DisplayName "MU-WebPanel" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
Atenção: Never open port 1433 (SQL Server) to the internet. With the database and GameServer on the same machine, all traffic is local (127.0.0.1) and needs no firewall rule. Exposing 1433 is one of the most exploited flaws on MU servers.

Also remember the provider firewall in the VPS panel, which is separate from the Windows firewall. The same ports need to be opened there.

Part 5 — Startup and verification

Step 15: Startup script in the correct order

The order is mandatory: DataServer → EventServer → ConnectServer → GameServer. Create C:\MuServer\StartAll.bat:

@echo off
echo Starting DataServer...
start "" "C:\MuServer\DataServer\DataServer.exe"
timeout /t 5 /nobreak

echo Starting EventServer...
start "" "C:\MuServer\EventServer\EventServer.exe"
timeout /t 3 /nobreak

echo Starting ConnectServer...
start "" "C:\MuServer\ConnectServer\ConnectServer.exe"
timeout /t 3 /nobreak

echo Starting GameServer...
start "" "C:\MuServer\GameServer\GameServer.exe"
echo All services started.

Always run it as Administrator.

Step 16: Check ports and database connection

# Confirm that the ports are listening
netstat -ano | findstr ":44405 :55901 :55960"
-- Confirm database integrity (the table varies by version)
USE MuOnline;
GO
SELECT * FROM T_CommonServerInfo;
GO

Common errors and fixes

ErrorLikely causeFix
GameServer opens and closesMissing VC++ runtimeInstall all Visual C++ (x86 and x64)
GameServer does not connect to the databaseTCP/IP disabled or wrong credentialsEnable TCP/IP, review the .ini files and the SQL login
"Cannot connect to DataServer"Wrong startup orderBring up the DataServer before the GameServer
Client cannot enter the gameInternal IP in the ConnectServerReplace 127.0.0.1 with the public IP
SQL consumes all the RAMNo memory limitSet max server memory
Antivirus false positiveDefender blocking the .exeAdd folder and process exclusions
Ports closed externallyProvider firewallOpen the ports in the VPS panel as well
Server reboots on its ownAutomatic Windows UpdateConfigure it to download and notify

Launch checklist

  • Windows Server renamed and time zone adjusted
  • Updates applied and automatic reboot disabled
  • Unnecessary services disabled
  • Visual C++ runtimes (x86 and x64) installed
  • Windows Defender exclusions added
  • SQL Server installed in mixed authentication mode
  • TCP/IP enabled and port 1433 set
  • SQL Server memory capped
  • Database created/restored and dedicated login configured
  • Directory structure organized under C:\MuServer
  • .ini connection strings adjusted
  • ConnectServer pointing to the public IP
  • Firewall rules created (Windows and provider)
  • StartAll.bat script in the correct order
  • Ports checked with netstat and database intact

Conclusion

Configuring Windows Server from scratch for MU Online is a chain of dependencies: the system needs the runtimes, the GameServer needs the database, the database needs TCP/IP enabled, and the whole set needs to start in the right order. By following the steps in this guide — system preparation, optimized SQL Server, organized files, a lean firewall and sequential startup — you reach a server that comes up stable and accepts connections. From here, the natural next move is to shield that foundation against attacks with a complete hardening process, covering RDP, accounts, updates and monitoring.

Frequently asked questions

Which version of Windows Server should I use for MU Online?

Windows Server 2019 or 2022 are the safest choices today: they have good support, run the modern runtimes and are compatible with most MuServer packages. Very old versions like 2008 R2 still work with legacy packages, but no longer receive security updates. Compatibility varies by package.

Why does the GameServer close as soon as it opens?

In the overwhelming majority of cases it is a missing Visual C++ runtime or an unreachable database. Install the Visual C++ packages (2010, 2013, 2015-2022) in x86 and x64, confirm that SQL Server is running with TCP/IP enabled and that the connection string in the .ini files is correct. Always check the log in GameServer\\Logs.

Do I need to install SQL Server on the same machine as the GameServer?

It is not mandatory, but on small and medium servers it is the standard for simplicity and zero latency between database and game. When SQL and the GameServer fight too much over resources, splitting them into two machines helps. The decision depends on the server's size and the VPS you have.

What is the correct order to start the MU services?

First the DataServer, then the EventServer (if any), next the ConnectServer and last the GameServer. Starting out of this order makes the GameServer fail to find the DataServer and close. A .bat script with pauses between each step guarantees the sequence.

Should I disable Windows Defender on the server?

No. VPS with public IPs are scanned by bots all the time. Instead of disabling protection, add folder and process exclusions for the MuServer executables, avoiding false positives without giving up security. Reinforce it afterward with dedicated hardening.

BR
Events, maps & items editor

Bruno specializes in MU Online events, maps, bosses and item economy. He documents every detail based on real gameplay.

Keep reading

Related articles