El mayor portal de MU Online de Brasil — desde 2003
Tutorial Avanzado Servidor

Cómo Crear un Servidor MU Online Moderno (S13+) — Guía General

Guía técnica completa para montar un servidor MU Online moderno desde Season 13 en adelante, cubriendo arquitectura, base de datos, red y configuración principal.

EQ Equipo ViciadosMU · Actualizado el 4 jul 2026 · ⏱ 18 min de lectura

Entendiendo la Arquitectura del Servidor MU Moderno

La Season 13 y las temporadas posteriores de MU Online introdujeron una complejidad de capas de sistema que no existía en los emuladores clásicos. Antes de escribir un solo archivo de configuración, es fundamental comprender la arquitectura multiproceso que comparten todos los proyectos modernos de servidor privado.

Un stack típico de servidor Season 13+ consiste en al menos cuatro procesos separados:

  • ConnectServer — el punto de entrada. Toda conexión de cliente llega aquí primero. Resuelve a qué canal de GameServer debe unirse el cliente y redirige en consecuencia.
  • GameServer — el proceso central. Maneja toda la lógica del juego: movimiento de personajes, combate, ítems, eventos, quests e instancias de mapas.
  • DataServer — el puente entre el GameServer y la base de datos SQL. Todas las lecturas y escrituras de personajes pasan por esta capa.
  • EventChipServer / JoinServer — opcionales pero frecuentemente requeridos por los paquetes de seasons más recientes. Gestionan la coordinación entre canales múltiples y las colas de instancias de eventos.

Comprender este flujo es esencial: si el ConnectServer está offline, los jugadores no pueden iniciar sesión sin importar si el GameServer funciona perfectamente.

Nota: Los emuladores modernos frecuentemente incluyen un ejecutable lanzador único que inicia todos los procesos en orden. Aun así, aprende siempre a qué proceso corresponde cada ventana — cuando algo falla, necesitas saber qué archivo de log inspeccionar primero.

Requisitos de Hardware y Sistema Operativo

Especificaciones Mínimas para un Servidor de Desarrollo

Para desarrollo local y pruebas, la siguiente línea base es funcional:

  • CPU: procesador de 4 núcleos a 2.5 GHz o superior
  • RAM: 8 GB (4 GB para OS + procesos, 4 GB de margen para SQL Server)
  • Almacenamiento: 60 GB SSD (sistema operativo) + 30 GB HDD (base de datos y logs)
  • Red: 100 Mbps simétrico — suficiente para hasta ~50 jugadores concurrentes en pruebas

Consideraciones para Producción

Para un servidor que planeas abrir públicamente, el I/O de almacenamiento se convierte en el principal cuello de botella. El rendimiento de SQL Server se degrada notablemente en discos mecánicos cuando los guardados de personajes se disparan durante eventos masivos como Castle Siege o Blood Castle. Coloca los archivos de datos de la base de datos y los archivos de log en volúmenes SSD separados siempre que sea posible.

> [!ATENCION] > No uses la misma máquina para alojar tu panel web, SQL Server y todos los procesos de GameServer en producción sin una línea base de rendimiento. Realiza pruebas de estrés con inicios de sesión concurrentes simulados antes de abrir. Los autoguardados inesperados durante horas pico pueden disparar la CPU al 100% y desconectar a todos los jugadores simultáneamente.

Sistema operativo: Windows Server 2019 Standard (64 bits) es la base recomendada. Habilita solo los roles que necesitas — como mínimo: .NET Framework 3.5 y 4.8 (muchos emuladores dependen de ambos), runtime de DirectX (algunas compilaciones de GameServer lo referencian) y Firewall de Windows con las excepciones de puertos correctas.

Instalación de la Base de Datos e Inicialización del Schema

Todos los emuladores MU modernos almacenan datos de cuentas, personajes, ítems y gremios en Microsoft SQL Server. El orden de configuración importa.

Instala SQL Server antes de extraer cualquier archivo del servidor. Crea un login SQL dedicado (evita usar sa para operaciones diarias):

-- Crear un login dedicado de base de datos para los procesos del servidor
-- Reemplaza <CONTRASENA> con una cadena aleatoria fuerte (mín. 16 caracteres)

CREATE LOGIN MuServerUser WITH PASSWORD = '<CONTRASENA>';
GO

-- Después de que el emulador haya creado la base de datos MuOnline:
USE MuOnline;
GO

CREATE USER MuServerUser FOR LOGIN MuServerUser;
GO

-- Otorgar los permisos mínimos requeridos
EXEC sp_addrolemember 'db_datareader', 'MuServerUser';
EXEC sp_addrolemember 'db_datawriter', 'MuServerUser';
EXEC sp_addrolemember 'db_ddladmin',   'MuServerUser';  -- necesario para scripts de migración de schema
GO

-- Verificar permisos efectivos
SELECT dp.name AS principal, p.permission_name, p.state_desc
FROM sys.database_permissions p
JOIN sys.database_principals dp ON p.grantee_principal_id = dp.principal_id
WHERE dp.name = 'MuServerUser';

Después de configurar SQL Server, ejecuta los scripts de schema del emulador en el orden documentado por el proyecto. Los paquetes modernos típicamente incluyen tres categorías de scripts:

  1. create_tables.sql → schema base
  2. stored_procedures.sql → todas las definiciones de SP usadas por DataServer
  3. default_data.sql → posiciones de NPC, ítems de tienda, spawns de monstruos

Ejecuta cada uno en orden dentro de una única sesión de base de datos. Si algún script falla a mitad, elimina la base de datos y reinicia desde un estado limpio en lugar de intentar reparaciones parciales.

Configuración del ConnectServer y la Red

El archivo de configuración del ConnectServer (comúnmente ConnectServer.ini o CSConfig.xml según el proyecto de emulador) controla qué canales de GameServer se anuncian a los clientes y en qué IP/puerto escucha el punto de entrada.

Parámetros clave para configurar correctamente:

[Network]
ListenIP        → 0.0.0.0          ; enlazar a todas las interfaces, o especificar una NIC
ListenPort      → 44405            ; puerto predeterminado de CS — debe coincidir con connect.ini del cliente
MaxConnections  → 10000            ; límite de conexiones TCP simultáneas

[ServerList]
; Cada entrada registra un canal de GameServer
; Formato: ChannelID → PublicIP:GameServerPort → DisplayName → MaxPlayers
Server00 → 203.0.113.10:55901 → Lorencia #1 → 1000
Server01 → 203.0.113.10:55902 → Lorencia #2 → 1000

[Timeouts]
LoginTimeout      → 30             ; segundos antes de descartar un intento de login inactivo
HeartbeatInterval → 10            ; intervalo de keepalive CS↔GS en segundos

> [!CONSEJO] > Durante las pruebas locales, reemplaza los valores de PublicIP con 127.0.0.1. Al pasar a un VPS o máquina dedicada, cambia a la dirección IPv4 pública real. Nunca uses una dirección privada 192.168.x.x en la ServerList si los jugadores se conectarán desde fuera de tu LAN — el cliente intentará conectarse directamente a esa IP y fallará.

Abre los siguientes puertos en el Firewall de Windows como reglas TCP entrantes:

  • 44405 — listener de clientes del ConnectServer
  • 55901–55910 — canales del GameServer (uno por canal que ejecutes)
  • 1433 — SQL Server (solo loopback; nunca expongas este puerto a internet)

Configuración Central del GameServer

La configuración del GameServer es la parte más extensa de cualquier instalación de emulador moderno. Los paquetes modernos de Season 13+ dividen los ajustes en múltiples archivos organizados por subsistema. Layout común de archivos:

GameServer/
  Config/
    GameServerInfo.ini   → identidad del servidor, credenciales DB, enlace de puertos
    GameOptions.ini      → tasas (EXP, drop, Zen), sistema de resets, configuración PK
    ItemBag.ini          → sobrescrituras de tabla de drops
    Events/
      BloodCastle.ini
      ChaosCastle.ini
      CastleSiege.ini
      IllusionTemple.ini
    MasterSystem.ini     → reglas de desbloqueo del árbol de habilidades Master Level
    RuudSystem.ini       → tasas de moneda Ruud para Season 12+

Los ajustes de mayor impacto para un nuevo administrador de servidor están en GameOptions.ini:

[ExpSystem]
BaseExpRate        → 30x           ; multiplicador aplicado a toda ganancia de EXP
MasterExpRate      → 10x           ; tasa separada para EXP de Master Level
PartyExpBonus      → 1.2           ; 20% de bonus en party

[DropSystem]
BaseDropRate       → 40            ; porcentaje de probabilidad de que un monstruo suelte algo
ExcellentItemRate  → 15            ; porcentaje de drops que son ítems con opción excelente
AncientItemRate    → 3             ; porcentaje de drops que son ítems de set antiguo
JewelDropRate      → 25            ; porcentaje de drops que son joyas

[ResetSystem]
EnableResets       → 1
MaxResets          → 100
ResetLevel         → 400           ; el personaje debe alcanzar este nivel para resetear
ResetRequireStats  → 0             ; 1 = requerir estadísticas máximas antes del reset
StatPointsPerReset → 500          ; puntos de estadística adicionales otorgados en cada reset

Sistema Master Level y Sistemas Específicos de Season

La Season 13 introdujo cambios estructurales significativos al sistema Master Level que difieren sustancialmente de las configuraciones de Season 9. El árbol de habilidades ML en S13+ es específico por clase y referencia IDs de habilidades que no existen en bases de datos más antiguas. Si estás migrando una base de datos de una season anterior, las entradas faltantes de habilidades ML harán que el GameServer se rompa al cargar personajes.

Verifica lo siguiente antes de abrir tu servidor:

  1. Todas las clases de personajes presentes en tu base de datos tienen entradas correspondientes en la tabla del árbol de habilidades Master Level (T_ML_SkillTree o equivalente).
  2. El valor MaxMasterLevel en MasterSystem.ini coincide con lo que la UI de tu cliente fue compilada para mostrar — una discrepancia hace que el cliente muestre límites de puntos ML incorrectos.
  3. Las posiciones del NPC de la tienda Ruud están correctamente definidas en tu tabla de spawns. Las entradas faltantes de NPC no rompen el servidor pero impiden que los jugadores gasten moneda Ruud, que es una mecánica de progresión central de Season 12+.
Nota: La Season 15 y posteriores introdujeron el sistema de 4ta Clase (rutas de actualización como Elf → High Elf → Mirage Lancer para algunas clases). Si tu proyecto de emulador admite esto, el procedimiento de desbloqueo de la 4ta Quest es manejado por un procedimiento almacenado separado (WZ_4thClassChange o similar). Confirma que este SP existe en tu base de datos después de ejecutar los scripts de schema, o el NPC de la quest fallará silenciosamente sin registrar ningún error.

Lista de Verificación Post-Instalación y Primer Arranque

Antes de iniciar todos los procesos por primera vez, revisa esta lista:

  • El servicio SQL Server está en ejecución y la base de datos MuOnline está completamente inicializada
  • El login MuServerUser puede conectarse usando las mismas credenciales escritas en GameServerInfo.ini
  • Las reglas del Firewall de Windows están en su lugar para todos los puertos requeridos
  • Las entradas de ServerList del ConnectServer apuntan a la IP correcta (127.0.0.1 para pruebas locales)
  • Las tasas en GameOptions.ini están configuradas en valores amigables para pruebas (EXP alta, drop alto) para verificar los sistemas de juego rápidamente
  • Existe al menos una cuenta GM en la base de datos (tabla AccountCharacter, columna Authority configurada al valor de flag GM de tu emulador)

Inicia los procesos en orden: DataServer primero → GameServer → ConnectServer. Cada proceso debería imprimir una línea de estado "escuchando" o "listo" en 10–20 segundos. Si el GameServer se cierra inmediatamente después de iniciar, las causas más comunes son una conexión SQL fallida (credenciales o puerto incorrectos) o un procedimiento almacenado faltante (script de schema ejecutado de forma incompleta).

Una vez que los tres estén en funcionamiento, lanza el cliente del juego, apúntalo a la IP de tu ConnectServer, crea una cuenta de prueba y verifica que la creación de personajes, el movimiento básico y la recogida de ítems funcionen correctamente antes de ajustar cualquier configuración adicional.

Perguntas frequentes

¿Qué sistema operativo se recomienda para un servidor MU moderno?

Windows Server 2019 o 2022 de 64 bits es la opción más compatible para emuladores de Season 13 en adelante. La mayoría de los paquetes modernos están compilados para Windows. Algunos proyectos ofrecen soporte para Linux mediante Wine o compilaciones nativas, pero Windows sigue siendo la base más segura para quienes comienzan.

¿Cuánta RAM necesita un servidor Season 13+?

Una instalación base con un proceso de GameServer, el ConnectServer y SQL Server Express consume entre 3 y 5 GB de RAM con carga baja. Para servidores públicos que esperen más de 100 jugadores simultáneos, planifica al menos 8–16 GB de RAM y una base de datos respaldada en SSD.

¿Puedo ejecutar el servidor y el cliente en la misma máquina para pruebas?

Sí. Durante las pruebas locales, los procesos del servidor y el cliente del juego pueden correr en la misma máquina. Configura la IP de conexión del cliente como 127.0.0.1 y asegúrate de que ninguna regla del Firewall de Windows bloquee los puertos predeterminados (44405, 55901, 55980). El rendimiento será reducido, por lo que esta configuración solo es adecuada para pruebas.

¿Qué versión de SQL Server debo usar con emuladores de seasons modernas?

SQL Server 2014, 2017 o 2019 son las versiones más ampliamente soportadas para emuladores de Season 9 a 15. SQL Server Express (nivel gratuito) es suficiente para servidores privados o de baja población. Evita SQL Server 2000 o 2005 — carecen de funciones requeridas por los procedimientos almacenados modernos.

EQ

Equipo ViciadosMU

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

Sigue leyendo

Artículos relacionados