Cómo configurar el Doppelganger (Twisted Karutan) en MU Online
Guía técnica completa para configurar el evento Doppelganger (Twisted Karutan) en tu servidor MU Online, cubriendo el sistema de salas por equipo, los interruptores, los baúles de recompensa, archivos INI, tablas SQL y solución de problemas.
El Doppelganger, también conocido como Twisted Karutan, es un evento de party de MU Online que combina caza de monstruos, activación de mecanismos y apertura de baúles de recompensa dentro de salas instanciadas del mapa Karutan. A diferencia de eventos de servidor entero como el Crywolf, o de PvP co
El Doppelganger, también conocido como Twisted Karutan, es un evento de party de MU Online que combina caza de monstruos, activación de mecanismos y apertura de baúles de recompensa dentro de salas instanciadas del mapa Karutan. A diferencia de eventos de servidor entero como el Crywolf, o de PvP como el Illusion Temple, el Doppelganger está enfocado en grupos: cada party entra en su propia versión de la sala y compite contra el reloj para acumular puntos y desbloquear los baúles. Es uno de los mejores eventos para dar objetivo a grupos de nivel intermedio y alto, y su configuración exige coordinar EventServer, salas por equipo, interruptores y drops. Esta guía cubre la configuración completa en servidores Season 6 Episode 3 y posteriores, con notas sobre las variaciones entre emuladores.
Requisitos previos
Antes de comenzar, confirma que tu entorno cumple con estos requisitos:
- MuServer Season 6 Episode 3 (o superior) con EventServer funcional
- SQL Server 2008 o superior con la base
MuOnline - Acceso administrativo a los directorios
EventServer/,GameServer/Data/y al SSMS - Cliente de MU con el mapa Karutan/Doppelganger presente en la carpeta
Data - Copia de seguridad completa de la base de datos y de las carpetas de configuración
> Si aún no tienes un servidor base corriendo, empieza por la guía de cómo crear un servidor de MU Online antes de configurar eventos de party avanzados como el Doppelganger.
Todos los nombres de archivo, IDs de monstruo e índices de mapa de abajo se presentan como ejemplo típico de un build Season 6. Cada detalle varía por emulador (MuEMU, IWZ, X-Team y otros), así que valida siempre con los archivos de tu servidor.
Entendiendo la mecánica del Doppelganger
Antes de configurar, entiende el flujo, porque la mayoría de los errores viene de tratar el Doppelganger como un evento estático:
- Cada party entra en una sala instanciada — varias parties pueden estar en el evento al mismo tiempo, cada una aislada en su sala.
- Dentro de la sala hay monstruos comunes y jefes (incluyendo los "doppelgangers", copias de monstruos). Matarlos otorga puntos.
- Repartidos por la sala hay interruptores/mecanismos que, al activarse, liberan áreas o baúles.
- Al final, los baúles de recompensa se abren según la puntuación o las condiciones cumplidas, dropeando ítems de valor.
- Todo esto ocurre dentro de un tiempo límite. Si el tiempo se acaba, la party es removida de la sala.
| Elemento | Función | Dónde se configura (ejemplo) |
|---|---|---|
| Sala instanciada | Aísla cada party | EventServer / INI |
| Monstruos y doppelgangers | Otorgan puntos al ser matados | MonsterSetBase / MonsterBase |
| Interruptores | Liberan áreas y baúles | Config del evento / archivo de sala |
| Baúles de recompensa | Entregan los drops | Tabla o archivo de reward |
| Tiempo límite | Cierra la sala | INI (EventDuration) |
Paso 1: Verificar la estructura de archivos del EventServer
El Doppelganger es orquestado por el EventServer. Confirma los archivos:
EventServer/
├── EventServer.exe
├── EventServer.cfg
├── Doppelganger.ini
└── Log/
└── Doppelganger.log
Si la carpeta Log/ no existe, créala manualmente. Si Doppelganger.ini no existe, créalo según el próximo paso. En algunos builds el archivo se llama TwistedKarutan.ini — esto varía por emulador.
Paso 2: Configurar el archivo Doppelganger.ini
Abre o crea EventServer/Doppelganger.ini en Notepad++ y guárdalo como ANSI. Ejemplo típico:
[Doppelganger]
DoppelgangerEnable=1
EntranceOpenTime=03:00,09:00,15:00,21:00
RegisterTime=10
EventDuration=30
MinUserPerParty=1
MaxUserPerParty=5
MinLevel=380
ScorePerMonster=10
SwitchCount=4
ChestRewardEnable=1
MaxRoomCount=10
Parámetros principales:
| Parámetro | Valor ejemplo | Descripción |
|---|---|---|
DoppelgangerEnable | 1 | Activa (1) o desactiva (0) el evento |
EntranceOpenTime | HH:MM | Horarios en que se abre la entrada |
EventDuration | 30 | Tiempo (min) que la party tiene en la sala |
MinUserPerParty | 1 | Mínimo de jugadores por party |
MaxUserPerParty | 5 | Máximo de jugadores por party |
MinLevel | 380 | Nivel mínimo para entrar |
SwitchCount | 4 | Número de interruptores por sala |
MaxRoomCount | 10 | Salas simultáneas máximas |
> En servidores pequeños, define MinUserPerParty=1 para permitir que jugadores solitarios o parejas entren. En servidores populosos, un mínimo de 3 a 5 incentiva el juego en grupo, que es el propósito del evento.
Paso 3: Configurar las conexiones en el EventServer.cfg
Abre EventServer/EventServer.cfg y confirma las conexiones y la habilitación:
[Connect]
GameServerIP=127.0.0.1
GameServerPort=55960
ConnectServerIP=127.0.0.1
ConnectServerPort=44405
[DataBase]
DSN=MuOnline
ID=event_user
PWD=sua_senha_forte
DBName=MuOnline
[Event]
DoppelgangerEventEnable=1
Nunca uses la cuenta sa en producción. Crea una cuenta SQL dedicada con permisos restringidos a la base MuOnline:
CREATE LOGIN event_user WITH PASSWORD = 'SenhaForte#2024';
USE MuOnline;
CREATE USER event_user FOR LOGIN event_user;
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO event_user;
Paso 4: Configurar los monstruos y doppelgangers de la sala
Los monstruos del evento (comunes, doppelgangers y jefes) se definen en GameServer/Data/MonsterSetBase.txt para el mapa del evento. Un bloque típico:
// Doppelganger / Twisted Karutan - Map 65 (ejemplo)
// MapNumber / MonsterIndex / X / Y / Direction / SpawnType
65 569 120 120 1 0 // Monstruo comun de la sala
65 569 130 125 1 0 // Monstruo comun de la sala
65 570 140 130 3 0 // Doppelganger (copia)
65 571 150 140 3 1 // Jefe de la sala
Confirma que los IDs de monstruo están habilitados en la base:
SELECT Index, Name, Enable
FROM MuOnline..MonsterBase
WHERE Index IN (569, 570, 571);
-- Habilitar si es necesario
UPDATE MuOnline..MonsterBase
SET Enable = 1
WHERE Index IN (569, 570, 571);
En muchos builds, los monstruos de la sala son invocados dinámicamente por el EventServer conforme la party entra, y no por spawn fijo. En ese caso, no los registres manualmente para evitar duplicación. Esto varía por emulador — confirma en la documentación de tu servidor qué enfoque usa el build.
Paso 5: Configurar el acceso a la sala (NPC o gate)
Los jugadores acceden al Doppelganger por un NPC de teletransporte o por un gate directo.
5.1 — Registrar el NPC de acceso (si tu build usa NPC) en GameServer/Data/MonsterSetBase.txt:
// NPC de acceso al Doppelganger (ejemplo)
// MapNumber / NpcIndex / X / Y / Direction
2 577 120 120 3 // NPC Doppelganger (Devias, ejemplo)
5.2 — Habilitar el gate de entrada en la base:
-- Verificar gate del Doppelganger (el numero varia por build)
SELECT GateNumber, GateName, MapNumber, Enable
FROM MuOnline..T_GateInfo
WHERE GateName LIKE '%Doppel%' OR GateName LIKE '%Karutan%';
-- Habilitar si es necesario
UPDATE MuOnline..T_GateInfo
SET Enable = 1
WHERE GateName LIKE '%Doppel%' OR GateName LIKE '%Karutan%';
Confirma también que el nivel mínimo de entrada configurado en el INI (MinLevel) corresponde al público esperado — un valor demasiado alto bloquea a todos los jugadores.
Paso 6: Configurar los interruptores y baúles de recompensa
Los interruptores liberan áreas y los baúles entregan los drops. La configuración normalmente queda embebida en el EventServer o en un archivo de sala. Un ejemplo conceptual:
; Fragmento del Doppelganger.ini referente a los baules
[Rewards]
ChestRewardEnable=1
ChestCount=3
RequiredScore=100
Las recompensas de los baúles suelen controlarse por tabla SQL o archivo de drop. Vía SQL, un ejemplo:
-- Verificar recompensas de los baules (el nombre de tabla varia por build)
SELECT * FROM MuOnline..T_DoppelgangerReward;
-- Ajustar item de recompensa (ejemplo conceptual)
UPDATE MuOnline..T_DoppelgangerReward
SET RewardItemIndex = 7182, -- ejemplo: Jewel of Life
RewardQuantity = 1,
DropRate = 30
WHERE ChestType = 1;
En builds basados en archivo, el drop de los baúles puede estar en GameServer/Data/DoppelgangerReward.txt o en un item bag específico. Esto varía por emulador. Ajusta las tasas con moderación: el Doppelganger es repetible varias veces al día, así que drops muy generosos derrumban el valor de los ítems rápidamente.
Paso 7: Secuencia de inicialización y prueba
El orden de inicialización es obligatorio:
- Inicia
DataServer.exey espera "Ready". - Inicia
ConnectServer.exey espera la conexión. - Inicia
GameServer.exey espera la inicialización completa. - Inicia
EventServer.exeal final y monitorea la consola.
En la consola del EventServer, confirma mensajes similares a:
[Doppelganger] Initialize OK
[Doppelganger] Next entrance: 03:00:00
[Doppelganger] Connected to GameServer: 127.0.0.1:55960
Para probar de inmediato, ajusta EntranceOpenTime a un horario justo por delante del reloj del servidor, reinicia el EventServer, entra con una party de prueba y valida el ciclo completo: entrada a la sala, caza de monstruos, activación de los interruptores, apertura de los baúles y recepción de las recompensas.
Errores comunes y soluciones
| Problema | Causa probable | Solución |
|---|---|---|
| El jugador no logra entrar | MinLevel demasiado alto o fuera de horario | Reduce MinLevel y confirma el EntranceOpenTime |
| La sala no se crea | MaxRoomCount agotado o evento deshabilitado | Verifica DoppelgangerEnable=1 y aumenta MaxRoomCount |
| Los monstruos no spawnean | IDs deshabilitados en MonsterBase | Ejecuta UPDATE MonsterBase SET Enable=1 para los IDs correctos |
| Los interruptores no funcionan | Config de sala ausente | Verifica el archivo/tabla de sala y el log del EventServer |
| Los baúles no abren | Puntuación objetivo no alcanzada o reward deshabilitado | Ajusta RequiredScore y confirma ChestRewardEnable=1 |
| Los baúles abren pero no dropean | Drop de los baúles mal configurado | Verifica la tabla/archivo de reward y las tasas |
| El cliente crashea al entrar | Archivo de mapa ausente en el cliente | Confirma los archivos del mapa en la carpeta Data del cliente |
> Después de alterar cualquier archivo .ini o tabla de configuración, reinicia el EventServer — los parámetros se cargan en memoria en la inicialización y rara vez se leen en tiempo real.
Ajuste de zona horaria
El EventServer usa el reloj de Windows del servidor. Ajusta los horarios al pico de tu público:
; Publico brasileno (UTC-3) queriendo eventos a las 00h, 06h, 12h y 18h
; En servidor UTC, suma 3 horas:
EntranceOpenTime=03:00,09:00,15:00,21:00
Verifica y sincroniza el reloj del servidor:
tzutil /g
w32tm /resync /force
Lista de verificación de lanzamiento
- Copia de seguridad completa de la base
MuOnliney de las carpetasEventServer/yGameServer/Data/ Doppelganger.inicreado y guardado en ANSI, conDoppelgangerEnable=1- Horarios de entrada configurados según la zona horaria del público
- Conexiones correctas en
EventServer.cfgcon cuenta SQL dedicada - IDs de monstruo (comunes, doppelgangers y jefes) habilitados en
MonsterBase - Spawns revisados en
MonsterSetBase.txt(sin duplicar si el build es dinámico) - NPC de acceso registrado y/o gate habilitado en
T_GateInfo MinLevelajustado al público esperadoMinUserPerPartyyMaxUserPerPartyajustados al tamaño del servidor- Interruptores y baúles configurados correctamente
- Drops de los baúles con tasas equilibradas
- Archivos de mapa presentes en el cliente y en el servidor
- Secuencia de inicialización respetada (EventServer al final)
- Prueba completa de una sala (entrada, caza, interruptores, baúles, reward) ejecutada
- Reloj del servidor sincronizado con
w32tm /resync /force
Con las salas instanciadas funcionando, los interruptores liberando los baúles y las recompensas equilibradas con la economía del servidor, el Doppelganger (Twisted Karutan) se convierte en uno de los mejores eventos de party de MU Online — dando objetivo constante a grupos de nivel intermedio y alto. La clave es validar el ciclo completo con una party de prueba antes de abrir al público, garantizando que cada etapa (entrada, puntuación, interruptores y baúles) funcione de punta a punta.
Preguntas frecuentes
¿Qué es exactamente el Doppelganger y por qué se llama Twisted Karutan?
Doppelganger es el nombre del evento de party en el que los grupos entran en una sala instanciada de Karutan (de ahí Twisted Karutan) para cazar monstruos, activar interruptores y abrir baúles de recompensa. El objetivo es acumular puntos matando monstruos y jefes dentro del tiempo límite.
Los jugadores no logran entrar a la sala del Doppelganger. ¿Qué verificar?
Confirma que el evento está habilitado en el INI, que el horario actual coincide con una ventana de entrada, que el NPC o el gate de acceso está configurado y que el jugador cumple el nivel mínimo exigido. El log del EventServer registra los intentos de entrada rechazados.
Los baúles de recompensa no abren o no dropean nada. ¿Qué hacer?
Los baúles solo liberan recompensa cuando se cumplen las condiciones de la sala (interruptores activados o puntuación alcanzada). Verifica la configuración de los baúles, la tabla o el archivo de drop asociado y si el EventServer registra la conclusión de la sala en el log.
¿Cómo ajustar cuántos jugadores por party pueden entrar?
Edita el número mínimo y máximo de jugadores por sala en el archivo INI del Doppelganger y reinicia el EventServer. Los servidores más pequeños deben usar mínimos bajos para no bloquear la entrada de parties pequeñas.
¿Qué versión del MuServer tiene el Doppelganger?
El Doppelganger (Twisted Karutan) apareció en servidores basados en Season 6 y posteriores. Los índices de mapa, IDs de monstruo y nombres de archivo varían por emulador, así que valida siempre con los archivos Data de tu build.