Cómo Crear y Configurar Servidor de MU Online Season 9
Guía completa para instalar, configurar y ejecutar un servidor privado de MU Online Season 9 desde cero, con SQL Server, GameServer y ConnectServer.
Visión General del Season 9
MU Online Season 9 introdujo mejoras significativas respecto al S6, incluyendo el sistema de Master Level ampliado, nuevos mapas como Kanturu Relics y La Cleon, y refinamientos en el sistema de sockets de ítems. La arquitectura del servidor mantiene los componentes clásicos — ConnectServer, DataServer y GameServer — pero utiliza binarios y esquema de base de datos propios de esta season.
Prerrequisitos
Antes de comenzar, asegúrate de tener instalado y configurado:
- Windows Server 2012/2016/2019 o Windows 10/11 (64 bits)
- SQL Server 2008 R2 / 2012 / 2014 (Express o Standard)
- SQL Server Management Studio (SSMS)
- .NET Framework 3.5 y 4.8
- Paquete MuServer Season 9 (GameServer, ConnectServer, DataServer, EventServer)
- Puertos abiertos: 44405 (ConnectServer), 55901 (GameServer interno)
Paso 1 — Preparar la Base de Datos
1.1 Crear las bases de datos principales
Abre el SSMS, conéctate a la instancia local y ejecuta:
CREATE DATABASE MuOnline
COLLATE Latin1_General_CI_AS;
GO
CREATE DATABASE MuOnline_Event
COLLATE Latin1_General_CI_AS;
GO
1.2 Importar los scripts SQL del servidor
En tu paquete MuServer S9, localiza el directorio DatabaseScript/ y ejecuta los scripts en orden desde SSMS (Archivo → Abrir → Script):
01_CreateTables.sql— crea todas las tablas base02_StoredProcedures.sql— stored procedures de login, ítems y personajes03_DefaultData.sql— datos iniciales de NPCs, tiendas y eventos04_EventTables.sql— tablas de Blood Castle, Devil Square, Chaos Castle
-- Verificar que las tablas principales se crearon correctamente
USE MuOnline;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_NAME;
Deberías ver al menos: AccountCharacter, Character, Guild, MEMB_INFO, MuCash, warehouse.
1.3 Crear el usuario SQL del servidor
USE master;
GO
CREATE LOGIN muonline_user WITH PASSWORD = 'TuContrasenaFuerte123!',
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
sa como usuario de conexión del servidor en producción. Crea siempre un usuario dedicado con contraseña fuerte. El login sa debe quedar deshabilitado tras la instalación.Paso 2 — Estructura de Directorios del Servidor
Organiza los binarios con la siguiente estructura (ajusta la unidad según sea necesario):
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
Paso 3 — Configurar el ConnectServer
Abre ConnectServer\ConnectServer.cfg en un editor de texto (se recomienda Notepad++):
[ConnectServer]
Port=44405
MaxUser=1000
ServerIP=0.0.0.0
[GameServer1]
ServerCode=0
ServerName=Servidor 1
ServerIP=127.0.0.1
ServerPort=55901
Type=0
NonPvP=0
Port=44405— puerto al que se conecta el cliente del juegoServerIP=0.0.0.0— escucha en todas las interfaces de redServerCode=0— debe coincidir con el código configurado en el GameServer
[GameServer2], [GameServer3] incrementando el ServerCode. Cada GameServer debe ejecutarse en un puerto diferente (55902, 55903, etc.).Paso 4 — Configurar el DataServer
Abre DataServer\DSConfig.cfg:
[ODBC]
DSN=MuOnline
UserID=muonline_user
Password=TuContrasenaFuerte123!
[Server]
DataServerPort=55980
GameServerPort=55901
MaxUser=5000
El DataServer gestiona toda la comunicación con la base de datos. Debe iniciarse antes que el GameServer.
Paso 5 — Configurar el GameServer
5.1 Configuración principal — 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 Configurar tasas de experiencia por nivel
Edita GameServer\Data\ExpTable.cfg para ajustar la XP por nivel individualmente:
; Formato: Nivel,ExpNecesaria
1,0
2,9000
3,18000
...
400,9500000000
5.3 Configurar el Master Level
En GameServer\Data\MasterLevel\MasterSkillTree.cfg, verifica que el Master Level esté habilitado:
[MasterLevel]
Enable=1
MaxMasterLevel=400
MasterExpMultiplier=1
PointsPerLevel=1
Paso 6 — Configurar Eventos en Season 9
Blood Castle (mapas 11-17 en S9)
Edita 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
Edita 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
Paso 7 — Registrar las Cadenas de Conexión ODBC
En Windows, ve a Panel de Control → Herramientas Administrativas → Orígenes de datos ODBC (64 bits):
- Haz clic en Agregar → selecciona SQL Server Native Client 10.0 (o 11.0 para SQL 2012+)
- Nombre del origen:
MuOnline - Servidor:
(local)o.\SQLEXPRESS - Autenticación SQL: usuario
muonline_usery la contraseña configurada - Base de datos predeterminada:
MuOnline - Haz clic en Probar conexión — debe retornar éxito
Repite el proceso para crear también el origen MuOnline_Event apuntando a la base de datos de eventos.
%SystemRoot%\system32\odbcad32.exe) para servidores modernos. El ODBC de 32 bits (%SystemRoot%\SysWOW64\odbcad32.exe) solo es necesario si tus binarios son de 32 bits — verifica GameServer.exe con Process Monitor para confirmarlo.Paso 8 — Orden de Inicio y Scripts de Arranque
Crea el archivo C:\MuServer\StartServer.bat:
@echo off
title ViciadosMU - Season 9 Starter
echo [1/4] Iniciando DataServer...
start "DataServer" /D "C:\MuServer\DataServer\" DataServer.exe
timeout /t 5 /nobreak >nul
echo [2/4] Iniciando ConnectServer...
start "ConnectServer" /D "C:\MuServer\ConnectServer\" ConnectServer.exe
timeout /t 3 /nobreak >nul
echo [3/4] Iniciando GameServer...
start "GameServer" /D "C:\MuServer\GameServer\" GameServer.exe
timeout /t 8 /nobreak >nul
echo [4/4] Iniciando EventServer...
start "EventServer" /D "C:\MuServer\EventServer\" EventServer.exe
echo.
echo Todos los servicios iniciados. Verifica las ventanas abiertas.
pause
El orden de inicio es obligatorio: DataServer → ConnectServer → GameServer → EventServer.
Paso 9 — Configuraciones Adicionales en la Base de Datos
Definir GM y Admin mediante SQL
USE MuOnline;
-- Convertir una cuenta en GM
UPDATE MEMB_INFO
SET memb_guar = 1, bloc_code = 'N'
WHERE memb___id = 'tucuenta';
-- Establecer el nivel de GM en el personaje
UPDATE Character
SET CtlCode = 8
WHERE Name = 'TuPersonaje';
-- CtlCode: 0=normal, 1=GM parcial, 8=GM completo
Configurar la tienda de Cash (MuCash)
-- Agregar Cash a una cuenta
UPDATE MuCash
SET WCoinC = WCoinC + 10000
WHERE AccountID = 'tucuenta';
-- Verificar saldo
SELECT AccountID, WCoinC, WCoinP
FROM MuCash
WHERE AccountID = 'tucuenta';
Solución de Problemas Comunes
| Error | Causa probable | Solución |
|---|---|---|
DataServer: Connection Failed | ODBC no configurado o contraseña incorrecta | Prueba el origen ODBC en el panel de Windows |
GameServer: Connect to DS Failed | DataServer no inició primero | Espera 10s tras el DataServer antes de iniciar el GS |
| Cliente se queda en "Connecting..." | Puerto 44405 bloqueado | Abre el puerto en el Firewall de Windows y el router |
| El progreso del personaje no se guarda | Error en stored procedures | Vuelve a ejecutar 02_StoredProcedures.sql en SSMS |
| Pestaña de Master Level no aparece | MasterLevel.Enable=0 | Actívalo en MasterSkillTree.cfg |
LogLevel=3 en GameServer.ini. Los logs se escriben en GameServer\Log\ y muestran cada conexión, desconexión y error de base de datos en tiempo real.Próximos Pasos
Con el servidor en funcionamiento, considera:
- Configurar un sitio web de registro con webEngineNET o ASP.NET
- Ajustar drops por mapa en
GameServer\Data\MonsterSetBase.cfg - Configurar un sistema de Resets personalizado mediante el stored procedure
WZ_RESET_CHARACTER - Implementar copias de seguridad automáticas de la base de datos con el Agente de SQL Server
Perguntas frequentes
¿Qué versión de SQL Server debo usar para Season 9?
El Season 9 es compatible con SQL Server 2008 R2, 2012 y 2014. SQL Server 2008 R2 Express (gratuito) es el más recomendado por su estabilidad con los stored procedures del MuServer S9. Evita SQL Server 2000 ya que no soporta los tipos de datos nuevos del esquema de base de datos S9.
¿Cuál es el puerto predeterminado del ConnectServer en Season 9?
El ConnectServer escucha en el puerto 44405 (TCP) por defecto. El GameServer se comunica internamente a través del puerto 55901. Asegúrate de abrir el puerto 44405 en el Firewall de Windows y en tu router para las conexiones externas de los jugadores.
El servidor arranca pero los jugadores se desconectan al entrar al juego. ¿Qué verificar?
Esto normalmente indica una incompatibilidad de versión entre el cliente y el servidor. Verifica el campo Season/Episode en GameServer/GameServer.ini — el valor debe coincidir con la versión del Main.exe del cliente. También confirma que el DataServer esté en ejecución antes de que inicie el GameServer.
¿Cómo aumentar el límite de cuentas por IP en Season 9?
Abre GameServer/GameServer.ini y localiza la clave MaxConnectPerIP. El valor predeterminado suele ser 2 o 3. Cámbialo al valor deseado (ej: MaxConnectPerIP=5) y reinicia el GameServer. Para control por cuenta utiliza la tabla MEMB_INFO en la base de datos.