Uso Avanzado de las Herramientas de GM en el Servidor de MU Online
Aprende a usar comandos GM avanzados, gestionar jugadores por SQL y configurar permisos de staff en tu servidor privado de MU Online.
Introducción
Las herramientas de GM (Game Master) son el núcleo de la administración de un servidor privado de MU Online. Usarlas correctamente marca la diferencia entre un servidor estable y una experiencia de juego comprometida. Esta guía cubre los comandos más importantes, la estructura de permisos en la base de datos y las buenas prácticas operativas para administradores de servidores con MuServer Season 6.
C:\MuServer\ o D:\GameServer\.1. Estructura de Permisos de GM
1.1 La Tabla MEMB_INFO
Los permisos de GM se controlan directamente en la base de datos MuOnline, en la tabla MEMB_INFO. Las columnas relevantes son:
| Columna | Tipo | Descripción |
|---|---|---|
memb___id | varchar(10) | Login de la cuenta |
AccountLevel | tinyint | Nivel de acceso (0 = jugador, 1–3 = GM) |
AccountExpireDate | datetime | Vencimiento de la cuenta |
bloc_code | char(1) | 'Y' = baneado, 'N' = activo |
Para ascender a un jugador a GM Level 3 (acceso total):
USE MuOnline;
UPDATE MEMB_INFO
SET AccountLevel = 3
WHERE memb___id = 'nombre_cuenta';
Para degradar a un GM y convertirlo de nuevo en jugador común:
USE MuOnline;
UPDATE MEMB_INFO
SET AccountLevel = 0
WHERE memb___id = 'nombre_cuenta';
AccountLevel = 3 tienen acceso sin restricciones al servidor. Asigna este nivel únicamente a personas de total confianza. Prefiere usar Level 1 o 2 para moderadores.1.2 Configuración en GameServer.ini
Confirma que los comandos GM están habilitados en GameServer/GameServer.ini:
[GameServer]
GMCommand=1
GMServerCommand=1
MaxGMCommand=3
Tras modificar este archivo, reinicia el proceso GameServer.exe para que los cambios surtan efecto.
2. Comandos GM Esenciales
2.1 Comandos de Navegación y Comunicación
Disponibles desde Level 1:
/move [mapa]— Teletransporta al GM al mapa indicado. Ejemplo:/move lorencia/move [mapa] [x] [y]— Teletransporta a coordenadas específicas. Ejemplo:/move lorencia 130 135/post [mensaje]— Envía un mensaje en naranja a todos los jugadores conectados/notice [mensaje]— Muestra un aviso en la parte superior de la pantalla de todos los jugadores
2.2 Comandos de Gestión de Jugadores
Disponibles desde Level 2:
/kick [personaje]— Desconecta el personaje del servidor/ban [personaje]— Banea la cuenta asociada al personaje/setstat [stat] [valor]— Modifica los atributos del personaje objetivo/goto [personaje]— Teletransporta al GM hasta el personaje/call [personaje]— Teletransporta al personaje hasta el GM
2.3 Comandos de Ítems y Personajes (Level 3)
/additem [código_ítem] [nivel] [opciones] [luck] [skill]
/resetchar [personaje]
/setlevel [personaje] [nivel]
/addzen [valor]
/addpoint [stat] [valor]
Ejemplo para añadir una Lame of Lightning +13 con Full Options y Skill:
/additem 0 4 13 15 1 1
GameServer/Data/Item/ItemList.ini o la tabla ItemAddOption en la base de datos para obtener los códigos correctos de cada ítem. Los códigos varían entre versiones de MuServer.3. Gestión mediante SQL Server
3.1 Consultar Jugadores Conectados
Para ver quién está conectado en un momento dado:
USE MuOnline;
SELECT
a.AccountID,
a.Name AS Personaje,
a.Class,
a.cLevel AS Nivel,
a.MapNumber AS Mapa,
a.MapPosX AS X,
a.MapPosY AS Y
FROM Character a
INNER JOIN MEMB_STAT b ON a.AccountID = b.memb___id
WHERE b.ConnectStat = 1
ORDER BY a.cLevel DESC;
3.2 Banear y Desbanear Cuentas
Baneo temporal (hasta una fecha específica):
USE MuOnline;
UPDATE MEMB_INFO
SET bloc_code = 'Y',
todt_bl_dt = '2026-12-31 23:59:59'
WHERE memb___id = 'cuenta_objetivo';
Baneo permanente:
USE MuOnline;
UPDATE MEMB_INFO
SET bloc_code = 'Y',
todt_bl_dt = NULL
WHERE memb___id = 'cuenta_objetivo';
Desbanear una cuenta:
USE MuOnline;
UPDATE MEMB_INFO
SET bloc_code = 'N',
todt_bl_dt = NULL
WHERE memb___id = 'cuenta_objetivo';
3.3 Restablecer la Contraseña de una Cuenta
USE MuOnline;
UPDATE MEMB_INFO
SET memb__pwd = 'nueva_contraseña_en_texto_plano'
WHERE memb___id = 'cuenta_objetivo';
memb__pwd. Otros aplican hash MD5 o SHA1. Verifica el método usado por tu panel web antes de actualizar directamente por SQL para evitar incompatibilidades al iniciar sesión.4. Monitoreo de Logs de GM
4.1 La Tabla GMCommand_Log
MuServer Season 6 registra todos los comandos ejecutados por GMs en la tabla GMCommand_Log:
USE MuOnline;
SELECT TOP 100
GM_Account,
GM_Character,
Command,
Target_Character,
CommandTime
FROM GMCommand_Log
ORDER BY CommandTime DESC;
4.2 Filtrar Comandos Sospechosos
Para auditar el uso de /additem o /addzen en las últimas 24 horas:
USE MuOnline;
SELECT *
FROM GMCommand_Log
WHERE CommandTime >= DATEADD(HOUR, -24, GETDATE())
AND (Command LIKE '%additem%' OR Command LIKE '%addzen%')
ORDER BY CommandTime DESC;
5. Configuración de Comandos Personalizados
5.1 El Archivo GMCommands.ini
En algunas builds de MuServer, los comandos disponibles por nivel se definen en GameServer/Data/GMCommands.ini:
[Level1]
/move=1
/post=1
/notice=1
/mapinfo=1
[Level2]
/kick=1
/ban=1
/goto=1
/call=1
/setstat=1
[Level3]
/additem=1
/resetchar=1
/setlevel=1
/addzen=1
/addpoint=1
/serverinfo=1
Añade o elimina entradas según tu política de administración. Reinicia GameServer.exe después de cualquier cambio.
5.2 El Comando /serverinfo
Usa /serverinfo para mostrar información del servidor directamente en el juego:
/serverinfo
Devuelve: versión del servidor, número de jugadores en línea, tiempo de actividad y mapa actual. Disponible por defecto en Level 3.
6. Buenas Prácticas de Administración
6.1 Segmentación de Roles → No des Level 3 a todos los miembros del staff. Usa Level 1 para moderadores de chat, Level 2 para moderadores en el juego y Level 3 solo para administradores.
6.2 Cuenta GM dedicada → Cada miembro del staff debe tener su propia cuenta GM. Nunca compartas la cuenta principal del administrador.
6.3 Rotación de Contraseñas → Cambia las contraseñas de las cuentas GM mensualmente y siempre que un miembro salga del equipo:
USE MuOnline;
UPDATE MEMB_INFO
SET memb__pwd = 'nueva_contraseña'
WHERE AccountLevel > 0;
6.4 Copia de Seguridad Antes de Intervenciones → Antes de cualquier cambio manual por SQL, haz una copia de seguridad de la tabla afectada:
SELECT * INTO MEMB_INFO_backup_20260703 FROM MEMB_INFO;
Resolución de Problemas
Problema: El comando GM no funciona en el juego
- Verifica
AccountLevelenMEMB_INFOpor SQL - Confirma
GMCommand=1enGameServer.ini - Pide al jugador que cierre sesión y vuelva a entrar
- Revisa los registros en
GameServer/Logs/GMCommand.log
Problema: /additem devuelve el ítem equivocado
- Consulta la tabla
ItemListen la base de datos o el archivoGameServer/Data/Item/ItemList.ini - La sintaxis puede variar: algunas builds usan
/item [tipo] [índice] [nivel]
Problema: El baneo por SQL no funciona
- Confirma que
bloc_codese guardó como'Y'(mayúscula) - Desconecta al jugador por la fuerza con
/kickantes del baneo - Verifica si tu panel web sobreescribe el campo
bloc_codeal sincronizar sesiones
Perguntas frequentes
¿Cuál es la diferencia entre GM Level 1, 2 y 3 en MuServer?
En MuServer Season 6, el Level 1 permite comandos básicos como /move y /post. El Level 2 añade /kick, /ban y /setstat. El Level 3 (acceso total) desbloquea /additem, /resetchar y manipulación directa de atributos. Los niveles se definen en la columna AccountLevel de la tabla MEMB_INFO en la base de datos MuOnline.
¿Cómo cambio el nivel de GM de un jugador por SQL?
Ejecuta: UPDATE MuOnline..MEMB_INFO SET AccountLevel = 3 WHERE memb___id = 'tu_cuenta'; — reemplaza el valor de AccountLevel por el nivel deseado (1, 2 o 3) y haz que el jugador cierre sesión y vuelva a entrar para que el cambio surta efecto.
El comando /additem no funciona en mi servidor, ¿por qué?
Verifica que el AccountLevel sea correcto en MEMB_INFO, que el servidor tenga GMCommand = 1 en GameServer.ini y que tu versión de MuServer soporte el comando. En algunas builds el comando equivalente es /item seguido del código del ítem.
¿Cómo banear a un jugador por tiempo limitado en vez de permanentemente?
Usa la tabla MEMB_INFO: UPDATE MuOnline..MEMB_INFO SET bloc_code = 'Y', todt_bl_dt = '2026-12-31 23:59:59' WHERE memb___id = 'cuenta_objetivo'; — el campo todt_bl_dt define la fecha de expiración del baneo. Ponlo en NULL para un baneo permanente.