IGK Emulator

Cliente de PC y Encoder

Desde la versión 1.0.0 43 min de lectura Para: Dueño Actualizada el 29-10-2026

Guía para el dueño del servidor: cómo se configura el cliente de PC, qué hace el Encoder, qué significa cada opción de MainInfo.ini y MainConnect.ini, cada tabla de las carpetas del Encoder, el config.ini del jugador, los tipos de interfaz, los textos e idiomas, las pantallas de carga, el video de la lista de servidores y las texturas HD.

Para el celular, ver 09_ANDROID.md. Para el navegador, ver 10_WEB.md. La guía para jugadores está en 14_GUIA_DEL_JUGADOR.md.

Rutas: en este documento MainInfo\ es la carpeta del Encoder y Client\ es la carpeta del cliente de PC (la que reciben los jugadores). Data\... siempre es dentro de la carpeta del cliente.


Qué hay en cada carpeta

Carpeta MainInfo\ (el Encoder)

Archivo o carpetaQué es
Encoder.exeEl programa que convierte los .ini y las tablas .txt en los archivos cifrados que lee el cliente.
Encoder.logEl resultado de la última ejecución: qué archivos creó y los errores.
MainInfo.iniLas opciones del cliente que decide el administrador (interfaz, botones, escenas, cámara, etc.).
MainConnect.iniLa conexión: IP y puerto, versión y serial, nombre de la ventana.
Common\Tablas generales: buffs, VIP, colores del chat, comandos, Gremory Case, nombres con brillo.
Item\Tablas de ítems: ítems y alas custom, joyas, apilables, efectos, posiciones, runas, capas, tooltips.
Map\Tablas de mapas: mapas custom, niebla y cielo por mapa.
Monster\Tablas de monstruos y NPC custom, color de nombre, sonidos.
Pet\Mascotas custom y sus efectos.
Interface\reference_0.json a reference_5.json: la referencia de cada tipo de interfaz con sus valores de fábrica. El juego no las lee. Sirven para consultar o recuperar un valor.
Lang\Los textos maestros del juego por idioma (Eng.json, Spn.json). El Encoder no los usa: se copian a mano al cliente (ver "Textos e idiomas").
Release\Carpeta de salida cuando PathExport está vacío.
Checksum\Los archivos del cliente que el juego revisa al abrir, con la misma ruta que en el cliente. El Encoder crea con ellos Data\Checksum.igk. Ver 20_CHECKSUM.md.

Carpeta Client\ (el cliente de PC)

Archivo o carpetaQué es
Main.exeEl juego (64 bits).
config.iniLas opciones de cada jugador. El juego lo crea y lo actualiza solo (ver "config.ini del jugador").
Data\Todos los datos del juego: modelos, texturas, mapas, sonidos, interfaz.
Data\MainInfo.igkCreado por el Encoder desde MainInfo.ini y las tablas.
Data\Local\Connect.igkCreado por el Encoder desde MainConnect.ini.
Data\Local\TextInfo.igkCreado por el Encoder desde las tablas de tooltips y buffs.
Data\IGK\Lo propio de IGK: configuración de interfaz, idiomas, pantallas de carga, video, sonidos, runas.
Data\HD\Texturas HD opcionales (ver "Texturas HD").
Data\Interface\HUD\Look-1 a Look-5Imágenes de cada tipo de interfaz.
ScreenShots\Capturas de pantalla de los jugadores.
Log\Los registros del cliente: MuError.log (errores, útil para soporte), Diligent.log (avisos de la gráfica) y, si el juego se cierra de golpe, un archivo de volcado (.dmp) para analizar el cierre.

Leer un MuError.log: el archivo va cifrado, para que los jugadores no lo lean. Arrástralo sobre Encoder.exe (el de MainInfo): el Encoder no codifica nada esa vez, escribe al lado MuError.txt en claro y espera Enter para cerrar. Con un archivo que no es un MuError.log cifrado, lo dice y no escribe nada.

El cliente completo con las texturas HD ocupa unos 2,2 GB (la carpeta Data\HD son unos 580 MB de eso).


Encoder: cómo se usa

Encoder.exe paso a paso

  1. Edita MainInfo\MainInfo.ini, MainInfo\MainConnect.ini o la tabla que quieras (.txt). Usa un editor de texto (Bloc de notas, Notepad++).
  2. Cierra el juego si lo tienes abierto (si no, el Encoder no puede escribir los archivos).
  3. Haz doble clic en MainInfo\Encoder.exe. Lee todo y crea los archivos.
  4. Abre MainInfo\Encoder.log y revisa el final:
    • Todos los archivos se crearon sin errores. = todo bien.
    • N error(es) de configuracion: revisar los mensajes de arriba. = hay algo mal escrito; arriba dice qué archivo y qué línea.
  5. Copia los archivos nuevos al cliente que repartes a los jugadores (ver tabla de abajo). Si PathExport apunta a tu carpeta Client\, ya quedaron ahí.
  6. Abre el juego para probar.

Archivos que crea el Encoder y dónde van

Archivo creadoSale deVa en el cliente
MainInfo.igkMainInfo.ini + todas las tablas de Common\, Item\, Map\, Monster\, Pet\ (menos los tooltips)Data\MainInfo.igk
Connect.igkMainConnect.iniData\Local\Connect.igk
TextInfo.igkItem\CustomItemToolTip.txt, Item\CustomTextTooltip.txt, Common\CustomBuffEffect.txtData\Local\TextInfo.igk
  • La carpeta de destino la da la clave PathExport (ver abajo). En los archivos que vienen con IGK: PathExport = ..\Client, o sea la carpeta Client que está al lado de MainInfo.
  • MainInfo.igk y TextInfo.igk van a la carpeta del PathExport de MainInfo.ini. Connect.igk va a la del PathExport de MainConnect.ini.
  • Si PathExport está vacío, los archivos quedan en MainInfo\Release\Data\... y los copias tú.
  • Cada vez que cambies algo, reparte los .igk nuevos a todos los jugadores (por ejemplo, con tu actualizador o el paquete del cliente). Un jugador con un MainInfo.igk viejo ve la configuración vieja.
  • Después de actualizar el cliente (Main.exe) a una versión nueva de IGK, vuelve a correr el Encoder. Un Main.exe nuevo puede no aceptar un MainInfo.igk hecho con un Encoder viejo (sale "Data\MainInfo.igk - Archivo dañado.").

Mensajes de Encoder.log

MensajeQué pasaQué hacer
Creado: ...Archivo creado bien.Nada.
No se pudo crear ...: revisar PathExport en ... (la carpeta tiene que existir) y que el juego este cerradoLa carpeta de destino no existe o el juego tiene el archivo abierto.Revisa PathExport y cierra el juego.
No se encontro MainConnect.ini en la carpeta del EncoderFalta el archivo. No se crea Connect.igk.Pon MainConnect.ini junto a Encoder.exe.
MainConnect.ini: CustomerName esta vacioFalta el nombre de cliente. No se crea Connect.igk.Completa CustomerName.
MainConnect.ini: IpAddress esta vacio (el cliente no va a poder conectarse)Falta la IP.Pon la IP o el dominio del servidor.
No se encontro MainInfo.ini en la carpeta del Encoder: ... se crea con los valores por defectoFalta MainInfo.ini.Pon el archivo junto a Encoder.exe.
MainInfo.ini: PluginAntiHack = X, no se encontro ese archivo en la carpeta del EncoderEl plugin nombrado no está junto al Encoder. El cliente no lo carga.Copia el .dll del plugin junto a Encoder.exe, o deja la clave vacía.
[archivo] No se encontro el archivoFalta una tabla.Restaura la tabla.
[archivo] El archivo no esta bien armado cerca de la linea N: revisar las columnas y que cada seccion termine con 'end'Una fila tiene columnas de más o de menos, comillas sin cerrar o falta end.Revisa esa línea.

Reglas generales de las tablas .txt

  • Las líneas que empiezan con // son comentarios.
  • Cada tabla termina con la palabra end. Algunas tienen secciones: un número solo en una línea (0, 1, 2) y luego sus filas hasta end.
  • Los textos van entre comillas: "VIP Bronze".
  • Los decimales van con punto: 1.5, no 1,5.
  • * en una columna significa "cualquiera" (en las tablas que lo permiten).
  • Un ítem se escribe casi siempre como grupo y número (las dos primeras columnas, igual que en Item.txt del servidor). Algunas tablas usan el número completo del ítem: grupo × 512 + número (por ejemplo, la Bolt del grupo 4 número 7 es 4 × 512 + 7 = 2055).
  • Después de editar cualquier tabla: correr Encoder.exe y repartir el MainInfo.igk (o el TextInfo.igk) nuevo.

MainConnect.ini (conexión)

Archivo: MainInfo\MainConnect.ini, sección [MainInfo]. Crea Data\Local\Connect.igk.

ClaveQué esValor en los archivos que vienen con IGK
CustomerNameLa clave de tu licencia de IGK (la misma de los servidores, ver 18_LICENCIA.md). Obligatorio: sin él no se crea Connect.igk.(tu clave)
IpAddressIP o dominio del ConnectServer al que se conecta el juego.(la del servidor de pruebas: cambiar por la tuya)
IpAddressPortPuerto TCP del ConnectServer. Debe ser igual a ConnectServerPortTCP de MuServer\ConnectServer\Data\ConnectServer.ini. Sin la clave: 44405.44405
ClientVersionVersión del cliente. Debe ser igual a ServerVersion de MuServer\GameServer\Data\GameServerInfo - Common.dat (y del GameServerCS).1.04.05
ClientSerialSerial del cliente (16 caracteres). Debe ser igual a ServerSerial del mismo Common.dat (GameServer y GameServerCS).(16 caracteres)
WindowNameTítulo de la ventana del juego. Dentro del juego el título agrega el personaje, nivel, resets y la hora del servidor.TEST MU
ScreenShotPathCarpeta y nombre de las capturas de pantalla. %02d son mes, día, hora, minuto y %04d el número.ScreenShots\Screen(%02d_%02d-%02d-%02d)-%04d.jpg
PathExportCarpeta del cliente donde se escribe Connect.igk. Vacía = MainInfo\Release...\Client
EncryptedFiles1 = el cliente tiene archivos cifrados: al abrir, el juego pide la llave a tu servidor. 0 = no consulta nada. Ver 19_CIFRADO.md.0

Problemas comunes de MainConnect.ini

  • El juego no conecta / no aparece la lista de servidores: IpAddress o IpAddressPort mal, o el puerto cerrado en el firewall del VPS.
  • Conecta pero no deja entrar al juego (error de versión): ClientVersion o ClientSerial no coinciden con ServerVersion / ServerSerial del GameServerInfo - Common.dat. Revisa también el del GameServerCS.
  • "Data\Local\Connect.igk - ¡no está o no es válido!" al abrir el juego: falta el archivo en el cliente, o se copió uno roto. Vuelve a correr el Encoder y copia el Connect.igk.

MainInfo.ini (opciones del administrador)

Archivo: MainInfo\MainInfo.ini. Crea Data\MainInfo.igk. El jugador no puede cambiar nada de esto: lo decide el administrador. Las opciones de gusto de cada jugador (FPS, resolución, gráficos, sonido) están en el config.ini del jugador.

Algunas claves aparecen comentadas con ; y la nota MIGRATED to the player's config.ini: ya no se leen aquí. Ahora las elige cada jugador en Opciones (ver la tabla "Claves que pasaron al config.ini").

[MainInfo]

ClaveQué haceSi faltaEn los archivos de IGK
MaxOfInstanceCuántos juegos abiertos a la vez permite en una misma PC. Si se pasa, sale "se superó el límite de juegos abiertos a la vez".25
PluginAntiHackNombre del .dll de un antihack externo. Vacío = ninguno. El .dll debe estar junto a Encoder.exe al codificar y junto a Main.exe en el cliente.vacíovacío
PluginReShaderNombre del .dll de un plugin de gráficos externo. Mismas reglas que el anterior.vacíovacío
PathExportCarpeta del cliente donde se escriben MainInfo.igk y TextInfo.igk. Vacía = MainInfo\Release.vacío..\Client

Si cambias el .dll de un plugin, vuelve a correr el Encoder: el cliente comprueba que el archivo sea exactamente el mismo que estaba al codificar. Si no, sale "¡Error de CRC del plugin!".

[HelperInfo] (MU Helper)

ClaveQué haceSi faltaEn IGK
HelperActiveLevelNivel mínimo del personaje para usar el MU Helper.8080
HelperActiveAlert1 = al llegar a ese nivel, el juego avisa que ya puede usar el MU Helper. 0 = sin aviso.00

[ReconnectInfo] (reconexión automática)

ClaveQué haceSi faltaEn IGK
ReconnectTimeSi se corta la conexión dentro del juego, el cliente intenta reconectar solo durante este tiempo, en milisegundos. 0 = desactivado. 300000 = 5 minutos.0300000

[CharacterInfo]

ClaveQué haceSi faltaEn IGK
DWMaxAttackSpeedVelocidad de ataque máxima del Dark Wizard (según la Agilidad).6500067000
DKMaxAttackSpeedIgual, Dark Knight.6500065000
FEMaxAttackSpeedIgual, Elf.6500067000
MGMaxAttackSpeedIgual, Magic Gladiator.6500067000
DLMaxAttackSpeedIgual, Dark Lord.6500067000
SUMaxAttackSpeedIgual, Summoner.6500067000
RFMaxAttackSpeedIgual, Rage Fighter.6500067000
MountPetSafeZoneMontura en la zona segura. 0 = desaparece (como siempre). 1 = el personaje se baja y la montura lo sigue como mascota, más chica.01
MountPetSizeAltura de la montura como mascota, en % de la altura del personaje (0 a 100; 0 = 60).0 (= 60)60

[Custom] (sistemas y botones)

ClaveQué haceValoresSi faltaEn IGK
PrintLogoLogo del servidor en las capturas de pantalla. La imagen es Data\Interface\HUD\MU-logo.OZT.0 no; 1 arriba izquierda; 2 arriba derecha; 3 abajo izquierda; 4 abajo derecha; 5 centro00
RemoveClassQuita clases de la pantalla de crear personaje.0 ninguna; 1 Summoner, Dark Lord y Rage Fighter; 2 Summoner y Rage Fighter; 3 solo Rage Fighter00
MaxItemLevelOnNivel máximo de ítem que se puede subir con mezclas/joyas.10 a 151515
EnableTradeCoinComercio con monedas.0 / 101
EnableRememberAccountCasilla "Recordar cuenta" en el login y en Opciones.0 / 101
EnableJewelOfInventoryBanco de joyas / ítems (se abre desde el menú F4).0 / 101
EnableCsSkillsAllMapsSkills de Castle Siege en todos los mapas. También hay que activarlo en el Common.dat del servidor.0 solo en Castle Siege / 1 todos01
RankUserSwitchCómo se muestra el título de ranking del jugador.0 completo; 1 sin estadísticas; 2 sin logo; 3 sin estadísticas ni logo; 4 logo sobre la cabeza; 5 desactivado00
EnablePartyHpBarVida de los miembros del grupo. 0 = desactivado (y la opción desaparece de Opciones). El estilo (barras o iconos) lo elige el jugador.0 / 111
CustomMenuSwitchMenú propio del servidor (tecla F4).0 / 101
CustomMenuTypeEstilo del botón del menú.1 logo; 2 botón junto al MU Helper02
EnableVipShopButtonEntrada "Tienda Premium" en el menú F4.0 / 101
EnableRankingButtonEntrada "Ranking" en el menú F4.0 / 101
EnableCommandButtonEntrada "Comandos" en el menú F4.0 / 101
EnableOptionButtonEntrada "Opciones" en el menú F4.0 / 101
EnableOptionVongQuayEntrada "Ruleta de la suerte" en el menú F4.0 / 101
EnableOptionHuyExlEntrada "Quitar opción excelente" en el menú F4.0 / 101
EnableEventTimeButtonEntrada "Eventos" (horarios) en el menú F4.0 / 101
EnableWindowsVipShopVentana de la tienda VIP (la que abre su entrada del menú).0 / 101
EnableWindowsRankTopVentana del ranking.0 / 101
EnableWindowsCommandVentana de la lista de comandos.0 / 101
EnableWindowsEventTimeVentana de horarios de eventos (también con la tecla H).0 / 101
SwitchPersonalShopTypeTipo de tienda personal.0 normal; 1 premium01
EnableOffStoreButtomBotón de tienda offline (solo con SwitchPersonalShopType = 0).0 / 101
EnableStoreBlessButtomBotón de vender por Jewel of Bless (solo con tienda normal).0 / 101
EnableStoreSoulButtomBotón de vender por Jewel of Soul (solo con tienda normal).0 / 101
EnableStoreChaosButtomBotón de vender por Jewel of Chaos (solo con tienda normal).0 / 101
EnableStoreCoin1Buttom a EnableStoreCoin3ButtomBotones de vender por las monedas 1, 2 y 3 (solo con tienda normal).0 / 101
SceneLoginFondo de la pantalla de servidores y login.ver tabla "Escenas"02
SceneCharacterFondo de la selección de personaje.ver tabla "Escenas"00
ServerListVideoVideo de fondo en la lista de servidores y el login (ver "Video de la lista de servidores").0 mapa de SceneLogin; 1 video01
CameraIntroAl entrar al juego, la cámara aparece cerca del personaje y se aleja suavemente (2,4 s). No pasa en teleports ni al cambiar de mapa.0 / 111
ItemDropBeamPilares de luz sobre los ítems del suelo: alas naranja, ancient cian, socket violeta, excelente verde, joyas amarillo; un ítem con suerte o +7 o más lleva solo un anillo azul. Cada jugador puede apagarlos en Opciones > Interfaz. Con 0 no hay pilares y la casilla no sale en Opciones.0 / 111

Escenas: SceneLogin y SceneCharacter

ValorSceneLogin (servidores y login)SceneCharacter (selección de personaje)
0Mapa World74Mapa World75
1Clásico (Season 1)Clásico, con marco
2Season 2/3: World56Season 2/3: World55
3Season 4: World78Season 4: World79
4Season 13: World95Season 13: World94, con lista de 5 personajes a la derecha
  • El mapa de cada escena debe estar en Data\ del cliente (por ejemplo Data\World56). Revisa que exista antes de elegir un valor.
  • Con ServerListVideo = 1 el video reemplaza al mapa de SceneLogin (solo en PC).

[Interface]

ClaveQué haceValoresSi faltaEn IGK
ServerDefaultNameDe dónde sale el nombre del servidor en la lista.0 del ConnectServer; 1 del archivo Data\Local\ServerList.bmd10
LookAndFeelTipo de interfaz del juego (ver "Tipos de interfaz").0 a 5 (y 6 o más para una interfaz nueva)04
CharInfoGlobo de información en la selección de personaje.0 normal; 1 con resets (Data\Interface\HUD\character_ex(1).ozt); 2 con resets y master resets (character_ex(2).ozt)02
PickItemTextTypeAviso al recoger un ítem.0 en el cuadro de experiencia; 1 texto dorado (estilo GM)00
InventoryExtensionAmpliación de inventario (tecla K con el inventario abierto).0 / 101
MaxInventoryExtensionCuántas ampliaciones de inventario como máximo.hasta 424
WareHouseExtensionAmpliación del baúl.0 / 101
CashShopInGameCash Shop dentro del juego (tecla X).0 / 101
OficialMuHelperMU Helper oficial (tecla Z para configurar, Inicio para empezar/parar).0 / 101
MasterSkillÁrbol de habilidades Master (tecla A).0 / 101
InvasionInfoTimeBarra de tiempo de invasión y conteo de monstruos.0 / 101
RenderItemToolipElemento estilo Season 18: tooltip de ítem nuevo.0 / 100
RenderItemNameDropElemento estilo Season 18: nombres de ítems en el suelo.0 / 100
RenderCharacterNameElemento estilo Season 18: nombre y mensajes sobre la cabeza con el estilo nuevo.0 / 100
RenderEquipmentEarringCasillas de aretes en el equipo.0 / 100
RenderEquipmentFlagNatCasilla de bandera en el equipo.0 / 101
RenderEquipmentRuneCasilla de runa (debajo de la bandera). El efecto de cada runa va en Item\CustomRuneEffect.txt.0 / 101
RenderEquipmentPetMuunCasilla de mascota Muun.0 / 100
RenderEquipmentPetEagleCasilla de águila.0 / 100
GLFontLetra de los avisos del centro de la pantalla y del chat. 0 = letra clásica. 1 = Arial negrita con sombra, sin cajas de fondo; los colores del chat salen de Common\CustomChatColor.txt.0 / 101

Claves que pasaron al config.ini del jugador

Estas claves están comentadas en MainInfo.ini. Cambiarlas ahí no hace nada. Ahora cada jugador las elige en Opciones y quedan en su config.ini.

Antes en MainInfo.iniAhora en config.ini
FpsRenderMax[Display] FpsLimit
FpsWindowsOption[Display] StartupDialog
ScreenType[Display] InterfaceSize (escala automática)
RenderGuildLogo[Interface] GuildLogoChat
RankUserShowOverHead, RankUserOnlyOnSafeZone, RankUserShowReset, RankUserShowMasterReset, RankUserNeedAltKey[Interface] RankOverHead, RankSafeZoneOnly, RankShowReset, RankShowMasterReset, RankNeedAlt
PartyHpBarType[Interface] PartyHpBar

Tablas del Encoder

Todas se aplican con el Encoder (crean MainInfo.igk, salvo los tooltips y buffs, que van en TextInfo.igk).

Common\CustomBuffEffect.txt (nombre y descripción de los buffs)

Qué es: el nombre y la descripción que se ven al pasar el ratón sobre el icono de un buff. Va en TextInfo.igk.

ColumnaQué es
1Número del buff (el que manda el servidor).
2Grupo del buff (varios buffs pueden compartir grupo).
3, 4Ítem relacionado (grupo y número; 255 = ninguno).
5Nombre del buff, entre comillas.
6, 7, 8Parámetros del buff. Deja los valores que trae.
9Descripción. Varias líneas se separan con /. %d es el valor que manda el servidor (no borres ni cambies el orden de los %d). %% muestra un %.

Ejemplo: 2 2 255 255 "Increase Defense" 0 1 1 "Increases Defence : +%d".

Common\CustomBuyVip.txt (comprar VIP en el juego)

Qué es: los planes VIP que se compran desde la tienda VIP del juego (menú F4 > Tienda Premium).

ColumnaQué es
#IndexNúmero del plan.
#Exp+Experiencia extra, en %.
#Drop+Drop extra, en %.
DaysDías que dura.
#CấpTàiKhoảnNivel de cuenta VIP que da (1 Bronze, 2 Silver, 3 Golden en los archivos de IGK).
#Coin1 #Coin2 #Coin3Precio en las monedas 1, 2 y 3.
#VipNameNombre que se muestra, entre comillas.

Common\CustomChatColor.txt (colores del chat)

Qué es: color de letra de cada tipo de mensaje del chat. Solo se usa con GLFont = 1 en MainInfo.ini.

ColumnaQué es
IndexTipo de mensaje: 0 común, 1 susurro, 2 sistema, 3 aviso de error, 4 party, 5 guild, 6 alianza, 7 GameMaster, 8 Gens, 9 Post (comando /post), 10 Post VIP.
TextR TextG TextBColor, 0 a 255.
TextAlphaOpacidad: 0 invisible, 255 opaco.

Common\CustomCommand.txt (lista de comandos del juego)

Qué es: la lista que el jugador ve en la ventana de Comandos (menú F4 > Comandos). No activa ni desactiva comandos en el servidor: eso se hace en los archivos del servidor.

ColumnaQué es
#IndexNúmero de fila.
#ColorColor de la línea.
#CommandEl comando, entre comillas ("/move").
AL0 a AL31 = habilitado para cuentas de ese nivel (0 a 3).
#GameMaster0 jugador, 1 GameMaster, 2 administrador.
#DescriptionCómo se escribe ("/move <Map>").
(última)Qué hace ("Move character").

Common\CustomMessageGremory.txt (origen de los ítems del Gremory Case)

Qué es: el texto que se ve debajo del nombre de un ítem del Gremory Case (de dónde vino).

  • Una sección por idioma del cliente: 0 inglés, 1 portugués, 2 español. Si el idioma del jugador no tiene el texto, se usa el de la sección 0.
  • Columnas: Index y Message (hasta 63 letras).
  • Index 0 a 249: el número de bolsa (G_Num) de EventItemBagManager.txt del servidor. 250 = /gremory, 251 = Daily Reward, 252 = scripts Lua, 253 = /gremoryall.

Common\CustomNameWave.txt (nombres con brillo de colores)

Qué es: personajes cuyo nombre se ve con efecto arcoíris / brillo de 7 colores.

ColumnaQué es
1Número de fila.
2Nombre exacto del personaje, entre comillas.

Item\CustomItem.txt (ítems custom)

Qué es: agrega el modelo de un ítem nuevo. Los modelos van en Data\Item\ (o Data\Player\ para piezas de set) y sus texturas en Data\Item\Texture\.

ColumnaQué es
TypeGrupo del ítem (como en Item.txt).
#IndexNúmero del ítem.
#ColorR #ColorG #ColorBColor (0 a 255).
#FileNameNombre del modelo .bmd, sin extensión.

El ítem también debe existir en el servidor (Item.txt) y en Item.bmd del cliente. Su posición en las ventanas va en CustomItemPosition.txt.

Item\CustomItemPosition.txt (posición de ítems en las ventanas)

Qué es: posición, giro y escala del modelo de un ítem dentro de su casilla (inventario, baúl, tiendas). Las filas de aquí reemplazan o agregan a los valores de Data\Local\ItemTRSData.bmd. Pon solo los ítems que agregas o cambias.

ColumnaQué es
Type IndexEl ítem (grupo y número).
X YPosición dentro de la casilla (0 a 1).
ZNo se usa.
AngX AngY AngZGiro en grados.
ScaleTamaño del modelo.

Decimales con punto y sin exponente. Cada ítem una sola vez.

Item\CustomWing.txt (alas custom)

Qué es: alas y capas nuevas, con sus opciones. Debe coincidir con MuServer\Data\Custom\CustomWing.txt del servidor.

ColumnaQué es
# IndexGrupo y número del ala.
DefADefensa base.
IncDmgA IncDmgBAumento de daño.
DecDmgA DecDmgBReducción de daño.
Opt1/Val1 a Opt3/Val3Opciones normales (número de opción y valor).
NewOpt1/NewVal1 a NewOpt4/NewVal4Opciones excelentes.
ModelTypeTipo de modelo (0 ala; 1 capa, como en el ejemplo de la capa).
ModelNameModelo .bmd, sin extensión.

Números de opción (lista del archivo): 80 daño adicional, 81 daño mágico adicional, 82 tasa de defensa, 83 defensa adicional, 84 suerte, 85 recuperación automática de vida %, 102 ignorar defensa %, 109 devolver daño %, 110 recuperar toda la vida %, 111 recuperar todo el maná %, 113 daño de maldición adicional.

Item\CustomCape.txt (capas con física)

Qué es: cómo se dibuja una capa (con tela que se mueve).

ColumnaQué es
#Index #SubIndexGrupo y número del ítem.
#RenderType0 por defecto; 1 Wings of Angel and Devil; 2 Cloak of Death; 3 Control Cloak; 4 Referre Cloak; 5 Transcendence; 6 Wings of Power; 7 Cloak of Isolation. Distinto de 0 ignora el resto de la fila.
#IsStrip0 capa normal; 1 normal con tira.
#Hide1GroupId #Hide2GroupIdPartes del modelo que se ocultan (-1 ninguna).
#TextureLayer #TextureStripTexturas de la capa y de la tira.
#TextureLayer_R #TextureStrip_RTexturas de brillo.

Item\CustomJewel.txt (joyas custom)

Qué es: joyas nuevas y a qué ítems se pueden aplicar. Tiene sección 0 y termina con end.

ColumnaQué es
IndexNúmero de fila.
ItemIndexNúmero completo de la joya (grupo × 512 + número).
MinItemLevel MaxItemLevelNiveles de ítem donde se puede usar.
MaxItemOption1 MaxItemOption2Límite de skill / suerte.
MinItemOption3 MaxItemOption3Límite de la opción adicional.
MinItemNewOption MaxItemNewOptionLímite de opciones excelentes.
MaxItemSetOptionLímite de opción de set.
MinItemSocketOption MaxItemSocketOptionLímite de sockets.
EnableSlotWeapon EnableSlotArmor EnableSlotWingSi se puede usar en armas, armaduras, alas.
SuccessRate_AL0 a SuccessRate_AL3% de éxito según el nivel VIP de la cuenta.
SalePricePrecio de venta.
ModelNameModelo de la joya.

* = sin límite. Debe coincidir con la configuración de joyas del servidor.

Item\CustomStack.txt (ítems apilables)

Qué es: ítems que se apilan en una casilla. Debe coincidir con MuServer\Data\Item\ItemStack.txt.

ColumnaQué es
IndexNúmero completo del ítem (grupo × 512 + número).
LevelNivel del ítem (* = cualquiera).
MaxStackMáximo por casilla.
CreateIndexÍtem que se crea al llegar al máximo (* = ninguno).
BreakUp1 = se puede separar.

Item\CustomImage.txt (texturas extra)

Qué es: texturas adicionales que usan otras tablas (por ejemplo CustomItemRenderMesh.txt). Ruta por defecto: Data\Item\Texture\.

ColumnaQué es
TextureNúmero de la textura, desde 33001. Es el número que usan las otras tablas en su columna Texture.
2.ª columna9728 (nítido) o 9729 (suavizado).
3.ª columna10496 (borde fijo) o 10497 (repetir).
#PathNombre del archivo, entre comillas.

Item\CustomItemRenderMesh.txt y Item\CEffectRenderMesh.txt (brillos y efectos en el modelo)

Qué es: efectos sobre partes del modelo de un ítem (cromado, brillo, movimiento de textura).

CustomItemRenderMesh.txt:

ColumnaQué es
#IndexGrupo y número del ítem.
#GroupIdParte (malla) del modelo.
#RenderFlagTipo de dibujo (suma de valores: 1 color, 2 textura, 4 cromado, 8 metal, 64 brillo, 128 oscuro, 256 extra, 512 cromado 2... ver la lista del archivo). Negativo = dibuja el cuerpo normal.
#TextureNúmero de textura de CustomImage.txt (-1 la del modelo).
#Color1 = usa el color de la columna siguiente.
#BodyLightColorColor R G B de 0.0 a 1.0.
#LuminosityBrillo, 0.0 a 1.0.
#RenderTypeMovimiento de la textura: -1 quieta, 0 en X, 1 en Y, 2 X al revés, 3 Y al revés, 4 por cuadros X e Y, 5 por cuadros Y.
#TimeEffectVelocidad del movimiento.
#TimeTextureTiempo de mezcla de la luz.
#GlowLevelNivel de ítem desde el que se ve.

CEffectRenderMesh.txt hace lo mismo con otro orden de columnas: Type Index Red Green Blue Group RenderEffect EffectType TimeEffectType TextureID TimeTextureID LevelGlow. En IGK trae efectos para pociones y joyas de colores.

Item\CustomRenderEffect.txt (efectos de armas y alas especiales)

Qué es: asigna a un ítem uno de los efectos predefinidos (Blessed Divine, Holyangel, Awakening, alas especiales...).

ColumnaQué es
1, 2Grupo y número del ítem.
3Número del efecto (la lista está al principio del archivo; por ejemplo 0 = Blessed Divine Staff, 9 = Heavenly Wings).

Item\CustomEffectStatic.txt y Item\CustomEffectDynamic.txt (efectos de luz en ítems)

Qué es: partículas o brillos fijos (Static) o con movimiento (Dynamic) pegados a un hueso del modelo.

ColumnaQué es
1, 2Grupo y número del ítem.
EffectNúmero del efecto o textura.
JoinHueso del modelo donde va.
LevelNivel mínimo del ítem para que se vea.
ColorR ColorG ColorBColor, 0.0 a 1.0.
ScaleTamaño.
AngleÁngulo.
TypeTipo de efecto.

En los archivos de IGK están vacías (solo ejemplos comentados).

Item\CustomSmokeItem.txt (humo de sets)

Qué es: color del humo de un set de armadura.

ColumnaQué es
SetIndexNúmero del set.
Red Green BlueColor, 0.0 a 1.0.

En IGK está vacía.

Item\CustomRuneEffect.txt (efecto de las runas)

Qué es: el círculo que gira en el suelo debajo del personaje que tiene equipada una runa. Lo ven todos.

  • La runa debe estar en Item.txt del servidor y en Item.bmd del cliente con la casilla (Slot) 241. Sus opciones van en el servidor (Data\Item\RuneItemOption.txt).
  • La casilla se enciende con RenderEquipmentRune = 1 en MainInfo.ini.
ColumnaQué es
Type IndexLa runa (grupo y número).
SizeAncho del círculo en baldosas (mayor que 0, hasta 10; el círculo del GM mide 1.5). Más grande = más costo.
Red Green BlueColor de 0 a 1 (1 1 1 = la textura tal cual).
SpeedGiro: 1 normal (una vuelta en 36 s), 0 quieto, negativo al revés.
TexturaImagen en Data\IGK\RuneEffect\ sin extensión ("EffectGM" = EffectGM.ozj). Lo negro no se ve.

Hasta 32 runas.

Item\CustomItemToolTip.txt y Item\CustomTextTooltip.txt (líneas extra en la descripción de ítems)

Qué es: líneas de texto extra en la ayuda de un ítem, según su rango, nivel y si es excelente o ancient. Va en TextInfo.igk.

CustomItemToolTip.txt tiene dos secciones (0 ítems, 1 sets), cada una con end:

ColumnaQué es
ItemIndexMin ItemIndexMaxRango de ítems (número completo).
LevelMin LevelMaxRango de nivel.
Exc AncSi debe ser excelente / ancient (-1 = no importa).
NameTítulo, entre comillas.
ColorNameColor del título (lista de colores al principio del archivo: 1 azul, 2 rojo, 3 dorado...).
Index1 Color1 Level1 ... hasta 15Hasta 15 líneas: número de texto de CustomTextTooltip.txt, su color y el nivel desde el que se muestra (-1 = vacía).

CustomTextTooltip.txt: Index y Text (el texto entre comillas).

En IGK, CustomItemToolTip.txt viene sin filas activas y los textos de ejemplo están en vietnamita.

Map\CustomWorld.txt (mapas custom)

Qué es: mapas nuevos con su nombre, imagen y música.

ColumnaQué es
#MapNúmero del mapa.
#effectEfecto del mapa: -1 ninguno; 91 Acheron; 95 Debenter; 100 Uruk Mountain; 110 Nars; 112 Ferea; 113 Nixie Lake.
#IdTextNúmero del texto del nombre del mapa en el archivo de idioma (txt_N).
#ExtTipo de terreno (0 o 1, según el mapa).
#ImgNameImagen del nombre del mapa al entrar.
#lpszMp3Música ("None" = sin música propia).

En IGK está activo el mapa 92 (modo MOBA League of Masters).

Map\CustomSky.txt (cielo por mapa)

Qué es: colores del cielo de cada mapa. El cliente ya trae cielo en los mapas exteriores (Lorencia, Devias, Noria, Tarkan, Aida, Crywolf, Kanturu, Elbeland, Swamp of Calmness, Raklion, Santa Town, Vulcanus, Loren Market y Karutan). Aquí se cambian sus colores, se quita el cielo a un mapa o se le da a otro. Sin fila, el mapa usa el cielo de fábrica (gris de día nublado).

  • El cielo se ve donde no hay nada dibujado: arriba al inclinar la cámara 3D (F10) y donde se acaba el terreno.
  • El ciclo de día y noche lo cambia solo: horizonte cálido al amanecer y atardecer, azul oscuro de noche, gris con lluvia.
  • La niebla de un mapa con cielo toma el color de su horizonte.
  • Cada jugador puede apagarlo en Opciones > Imagen > Cielo.
ColumnaQué es
MapNúmero del mapa.
Sky1 con cielo, 0 sin cielo.
DayNight1 = el mapa sigue el ciclo de día y noche. El ciclo lo enciende el GameServer (DayNightSwitch y las demás claves DayNight de GameServerInfo - Common.dat).
ZenR ZenG ZenBColor de arriba del todo (0 a 255). Opcional.
HorR HorG HorBColor del horizonte y de la niebla. Opcional.
NadR NadG NadBColor de abajo del todo (para mapas sobre el vacío; si faltan, los del horizonte). Opcional.

Sin colores, se usan los de fábrica del mapa. Ejemplo (Lorencia): 0 1 1 72 118 182 168 188 208.

Map\CustomFog.txt (niebla por mapa)

Qué es: deja la niebla siempre encendida en un mapa, con un color. Empieza a 2000 unidades y tapa todo a 2700. Vale para mapas sin cielo (los mapas con cielo usan el color de su horizonte).

ColumnaQué es
MapNúmero del mapa.
Red Green BlueColor, 0 a 255.

En IGK está vacía (solo un ejemplo comentado).

Monster\CustomMonster.txt (monstruos y NPC custom)

Qué es: monstruos y NPC nuevos con su modelo.

ColumnaQué es
IDNúmero del monstruo (el de Monster.txt del servidor). Los custom van desde 580. Reservados: 580, 581, 582, 583, 584, 604, 643, 651. 605, 606 y 607 son los yacimientos de minería.
Type0 NPC, 1 monstruo.
SizeTamaño (1.00 = normal).
NameNombre, entre comillas.
DirectoryCarpeta del modelo dentro de Data\ ("Monster\\").
FileNameModelo, sin extensión.

En IGK están los monstruos del modo MOBA (nexos, torres, súbditos).

Monster\CustomMonsterNameColor.txt (color del nombre de monstruos)

Qué es: color del nombre del monstruo (su barra de vida y lo que dice). Sin fila, blanco.

ColumnaQué es
IndexNúmero del monstruo (Monster.txt del servidor).
ColorR ColorG ColorBColor, 0 a 255.

En IGK vienen coloreados invasiones, Golden, jefes y mini jefes.

Monster\CustomMonsterSound.txt (sonidos de monstruos)

Qué es: sonidos propios de un monstruo, en lugar de los de su modelo.

ColumnaQué es
MonsterIDNúmero del monstruo.
Type0 y 1 quieto, 2 moverse, 3 y 4 ataque (también al recibir un golpe), 6 muerte.
FileNameArchivo Data\Sound\<FileName>.wav, sin extensión.

Monster\CustomMonsterRenderMesh.txt (brillos en monstruos)

Igual que CustomItemRenderMesh.txt, pero la primera columna es el número del monstruo (una sola columna). En IGK está vacía.

Monster\CustomNpcName.txt (nombre de un NPC en un lugar)

Qué es: cambia el nombre de un NPC puesto en un mapa y posición.

ColumnaQué es
IDNúmero del NPC.
WorldMapa.
PositionX PositionYPosición.
NameNombre nuevo, entre comillas.

En IGK está vacía.

Pet\CustomPet.txt (mascotas custom)

Qué es: mascotas y monturas nuevas. Texturas en Data\Item\Texture\.

ColumnaQué es
ID IndexGrupo y número del ítem.
RemplaceUso avanzado: deja -1 como en el ejemplo, salvo que copies una fila que lo use.
MovementCómo se mueve: 0 Demon, 1 Rudolf, 2 Panda, 3 Unicorn, 4 Skeleton, 5 Fenrir (montura), 6 Dark Horse (montura), 7 Uniria (montura), 8 Muun.
FenriEfecto extra (0 en el ejemplo).
ScaleTamaño.
FileNameModelo, sin extensión.

Pet\CustomPetEffectStatic.txt y Pet\CustomPetEffectDynamic.txt

Iguales que CustomEffectStatic.txt / CustomEffectDynamic.txt, pero para mascotas. En IGK solo traen ejemplos comentados.


Tipos de interfaz (LookAndFeel)

Se elige en MainInfo\MainInfo.ini [Interface] LookAndFeel, se corre el Encoder y se reinicia el juego. El jugador no lo puede cambiar.

ValorInterfazImágenes propiasPosiciones
0Season 6 (la original)Data\Interface\ (no tiene carpeta propia)Fijas (no tiene archivo JSON)
1Season 1Data\Interface\HUD\Look-1\Data\IGK\Settings\Interface\interface_1.json
2Season 2/3Data\Interface\HUD\Look-2\interface_2.json
3Ex700 (Season 16)Data\Interface\HUD\Look-3\interface_3.json
4LegendsData\Interface\HUD\Look-4\interface_4.json
5Incompleta (no sale en el comentario de MainInfo.ini): solo marco, orbes, AG y SD; sin botones en la barra ni barra de experiencia. No se recomienda.Data\Interface\HUD\Look-5\interface_5.json
  • Qué cambia con el tipo: sobre todo la barra de abajo (orbes, AG, SD, experiencia, botones, ranuras Q/W/E/R, skills). En los tipos 1 y 2 también cambian los marcos de casi todas las ventanas, el chat y la lista del grupo.
  • Qué no cambia: las pantallas de antes de entrar (carga, servidores, login, personajes), la ventana de Opciones y las ventanas nuevas de IGK.
  • En Android la interfaz es siempre la suya (táctil), sin importar LookAndFeel.
  • En los tipos 1 y 2 no hay tecla R de pociones (solo Q, W, E). El tipo 1 no tiene botón de amigos ni de tienda en la barra.

Imágenes de cada tipo: Look-N y Overrides

  • Data\Interface\HUD\Look-N\: las piezas propias del tipo (orb_life, button_character, bar...). Cámbialas por otro dibujo con la misma medida.
  • Data\Interface\HUD\Look-N\Overrides\: reemplazos de imágenes de Season 6 solo para ese tipo. Mismo nombre, misma ruta (contada desde Data\Interface\) y misma medida que la original. Por ejemplo, Look-3\Overrides\partCharge1\newui_menu03.OZJ reemplaza Data\Interface\partCharge1\newui_menu03.OZJ solo en el tipo 3.
  • Un reemplazo que no mide lo mismo que el original no se usa (el juego usa el original y lo anota en MuError.log).
  • Lo que un tipo no tiene en su carpeta se toma de Season 6.
  • Si falta una imagen, el juego avisa al arrancar "No se pudo cargar la imagen: <ruta>" y esa pieza sale vacía.
  • Las versiones HD van en Data\HD\ con la misma ruta (ver "Texturas HD").

Posiciones: Data\IGK\Settings\Interface\interface_N.json

Qué es: un archivo por tipo (1 a 5) con la posición y el tamaño de todo lo que se puede mover: la barra de abajo, el chat, el minimapa, los buffs, la lista del grupo, los avisos, el inventario, el personaje, el baúl, el comercio, las tiendas y más. Cada elemento trae una nota "_note" que explica qué es.

  • Se edita con el juego abierto: al guardar, el juego lo vuelve a leer en un segundo y todo se mueve, sin reiniciar.
  • Lo que falta en el archivo usa el valor de fábrica. Las claves que empiezan con _ son notas.
  • Los valores de fábrica de cada tipo están en MainInfo\Interface\reference_N.json (también el de Season 6, reference_0.json). Sirven para volver a poner un valor.
  • Unidades de la barra (bar): una pantalla de 640x480 (x de 0 a 640, y de 0 a 480). El juego centra ese cuadro abajo en cualquier resolución.
  • Unidades del resto (screen): x desde la izquierda, y desde arriba, from_right y from_bottom desde el borde derecho y el de abajo.
  • Piezas de la barra (tipos 1 a 5): cada una tiene además enabled (false = apagada, ni se ve ni recibe clic), image (archivo de la carpeta Look-N), crop ([x, y, ancho, alto], qué parte de la imagen se dibuja), mirror (al revés), frames / columns / seconds (animación de los orbes) y states (estados de un botón: 1, 2 o 3).
  • Para usar una imagen de otra medida en una pieza de la barra: ponla en Look-N\ y cambia su image y su crop.
  • Un JSON roto (por ejemplo, falta una coma) no rompe el juego: se usa todo de fábrica y MuError.log puede indicar la línea y la columna del error.

Ejemplo (mover el orbe de vida del tipo 3):

"life": { "enabled": true, "x": 108, "y": 408, "width": 60, "height": 60, "number_x": 30, "number_y": 30 }

Crear una interfaz nueva (LookAndFeel 6 o más)

Sin programar:

  1. En MainInfo.ini: LookAndFeel = 6 (o 7, 8...). Correr el Encoder.
  2. En el cliente, copiar la carpeta del tipo en que te basas (por ejemplo Look-3, con su Overrides) como Data\Interface\HUD\Look-6\.
  3. Copiar Data\IGK\Settings\Interface\interface_3.json como interface_6.json y agregarle "base": 3 (a cuál de los tipos 0 a 5 se parece).
  4. Cambiar posiciones en interface_6.json e imágenes en Look-6.

Con base 0: copia MainInfo\Interface\reference_0.json como interface_6.json, agrega "base": 0, y en Look-6 pon solo su Overrides\.

Si al nuevo tipo le falta una pieza propia, se usa la del tipo base. Sin interface_6.json o sin un "base" válido, se dibuja como el tipo 0.

Resoluciones: Data\IGK\Settings\Resolutions.xml

Lista de las 15 resoluciones que el jugador puede elegir (de 800x600 a 1920x1080). Opciones solo muestra las que caben en el monitor. Data\Resolutions_OLD.xml es una lista vieja que el juego no lee.


config.ini del jugador

Archivo: config.ini, en la carpeta del cliente (junto a Main.exe). Lo crea el juego la primera vez y lo cambia la ventana de Opciones. Cada jugador tiene el suyo. Formato: Clave=Valor en secciones [...].

  • Si falta una clave, el juego la agrega con su valor por defecto. Si la PC tenía un MU viejo, algunas (resolución, motor, FPS, modo de pantalla, sonido, idioma, recordar cuenta) se toman de la configuración vieja de Windows.
  • La primera vez en una PC con gráfica integrada, el juego empieza con el preajuste Medio.
  • Para restablecer todo: cerrar el juego y borrar config.ini. Se crea de nuevo al abrir.
  • No repartas tu propio config.ini en el cliente para jugadores: lleva tus gustos (motor, resolución, cámara). Mejor que el juego lo cree.

[Display] (pantalla)

ClaveQué esValoresPor defecto
RenderEngineMotor gráfico. Necesita reiniciar.1 DirectX 11; 2 DirectX 12; 3 Vulkan1
ScreenModeModo de pantalla. Necesita reiniciar.0 ventana; 1 pantalla completa (sin bordes, del tamaño del monitor)0
ResolutionNúmero de la resolución en Resolutions.xml (0 = 800x600 ... 14 = 1920x1080).0 a 141 (1024x768)
InterfaceSizeTamaño de la interfaz, en % de la escala automática.90, 100, 115, 130, 150100
MonitorX, MonitorYMonitor donde estuvo el juego la última vez (vuelve a abrir ahí). Lo escribe el juego.——
FpsLimitLímite de FPS.25, 30, 40, 60, 120, 0 (sin límite)120
VSyncSincronización vertical.0 / 10
ShowFpsMostrar FPS y ping en pantalla.0 / 11
StartupDialogVentana de inicio para elegir motor y FPS al abrir el juego.0 / 11

[Graphics] (gráficos)

ClaveQué esValoresPor defecto
EffectLevelLímite de efectos de los objetos.0 a 4 (4 = todos)4
ShadowsSombras.0 no; 1 clásicas; 2 reales1
ShadowStrengthIntensidad de las sombras reales, en %.10 a 90, de 10 en 1040
GrassHierba.0 / 11
FogNiebla.0 / 11
WeatherModeClima (lluvia, nieve, hojas).0 no; 1 clásico; 2 mejorado2
ViewDistanceDistancia de vista con la cámara 3D.0 normal; 1 lejos; 2 muy lejossegún el preajuste
AnisotropyFiltro anisotrópico. Necesita reiniciar.0, 2, 4, 8, 164
MipmapsMipmaps. Necesita reiniciar.0 / 11
TextureCompressionCompresión de texturas (menos memoria de video). Necesita reiniciar.0 / 1según el preajuste
HDTexturesUsar las texturas de Data\HD. Necesita reiniciar.0 / 10
AntialiasingSuavizado de bordes.0 no; 1 FXAA; 2 MSAA 4x; 3 MSAA 4x + FXAAsegún el preajuste
SharpenNitidez.0 / 10
BloomResplandor.0 no; 1 suave; 2 fuertesegún el preajuste
ColorStyleEstilo de color.0 clásico; 1 vivo; 2 cálido; 3 frío; 4 suave0
BrightnessBrillo.-2 a 20
RenderScaleResolución del mundo, en % de la ventana.100, 85, 75, 67, 50100
SkyCielo.0 / 11
SkyDetailDetalle del cielo.0 simple; 1 completo (nubes y estrellas)según el preajuste
DayNightCiclo de día y noche (si el servidor lo tiene).0 / 11
WaterAgua con reflejos y charcos con lluvia.0 / 11
DynamicLightsLuces dinámicas.0 clásicas; 1 suaves; 2 intensassegún el preajuste
ModelRoundingModelos redondeados (experimental).0 / 10

[Interface] (interfaz)

ClaveQué esValoresPor defecto
TextSizeTamaño de letra, en % del automático.90, 100, 110, 120, 130100
TextStyleEstilo de letra.0 clásicas; 1 suaves0
WindowsCursorCursor.0 del juego; 1 de Windows (sigue al ratón sin retraso)0
PartyHpBarVida del grupo.0 barras; 1 iconos sobre la cabeza1
HideMonsterHpBarOcultar barras de vida de monstruos.0 / 10
HidePlayerHpBarOcultar barras de vida de personajes.0 / 10
DropBeamsPilares de luz en los ítems del suelo.0 / 11
GuildLogoChatLogo del gremio en el chat.0 / 11
RankOverHeadTítulo de ranking sobre la cabeza.0 / 11
RankNeedAltTítulo de ranking solo con Alt pulsado.0 / 10
RankSafeZoneOnlyTítulo de ranking solo en zona segura.0 / 11
RankShowResetMostrar resets en el título.0 / 11
RankShowMasterResetMostrar master resets en el título.0 / 11

[Sound], [Game], [Camera], [SettingsFont]

SecciónClaveQué esPor defecto
[Sound]SoundEfectos de sonido (0 / 1).1
[Sound]MusicMúsica (0 / 1).1
[Sound]SoundVolumeVolumen de efectos, 0 a 10.5
[Sound]MusicVolumeVolumen de música, 0 a 10.10
[Game]LanguageIdioma: el nombre del archivo de Data\IGK\Local\Lang sin .json (Eng, Spn). Necesita reiniciar.Eng
[Game]RememberAccountRecordar cuenta (solo si EnableRememberAccount = 1).1
[Camera]EnabledCámara 3D encendida al entrar (F10).0
[Camera]ModeModo de cámara 3D: 1 clásica, 2 suave, 3 amplia, 4 cinemática (al entrar vuelve como clásica).1
[Camera]Saved, Zoom, RotX, RotYÚltima vista de la cámara 3D. Las escribe el juego.—
[SettingsFont]font-korean1 = usa la fuente Data\Interface\HUD\fonts\fonts_kr.ttf para letras coreanas.0
[SettingsFont]font-chinase1 = usa fonts_all.ttf y fonts_ch.ttf para letras chinas.0

La sección [Mobile] (HudScale) solo la usa Android.


Carpeta Data\IGK del cliente

CarpetaQué hay
Data\IGK\Settings\Interface\interface_1.json a interface_5.json: posiciones de la interfaz por tipo.
Data\IGK\Settings\Resolutions.xmlLista de resoluciones.
Data\IGK\Local\Lang\Textos del juego por idioma (Eng.json, Spn.json).
Data\IGK\Custom\Loading\Pantallas de carga propias y loading.ini.
Data\IGK\Custom\Serverlist\bg_serverlist.mp4, el video de la lista de servidores.
Data\IGK\Custom\LOM\Imágenes y sonidos del modo MOBA (victoria, derrota).
Data\IGK\Sounds\Sonidos propios (truenos de las tormentas, la foca de Lorencia).
Data\IGK\RuneEffect\Imágenes de los círculos de las runas.
Data\IGK\Models\Modelos propios (la foca de Lorencia).
Data\IGK\Icons\Iconos propios.
Data\IGK\Cache\Archivos temporales que crea el juego. Se pueden borrar.

Textos e idiomas

Archivos de idioma: Data\IGK\Local\Lang\<idioma>.json

  • Todos los textos del juego están en un archivo JSON por idioma, en UTF-8: "name" (el nombre en la lista de Opciones, por ejemplo "Español") y los textos "txt_0", "txt_1"...
  • Los originales (maestros) están en MainInfo\Lang\. El juego lee la copia del cliente, en Data\IGK\Local\Lang\.
  • El Encoder no toca estos archivos.
  • Si falta un texto, en el juego se ve txt_N (por ejemplo txt_5108).
  • Si el archivo del idioma falta o está roto, el juego usa Eng.json.

Cambiar un texto

  1. Abre MainInfo\Lang\Spn.json (o el idioma que sea) con un editor que guarde en UTF-8 (Notepad++, VS Code).
  2. Busca el texto y cámbialo. Respeta los %d, %s y \n: mismos y en el mismo orden.
  3. Guarda y copia el archivo a Data\IGK\Local\Lang\ del cliente.
  4. Reinicia el juego.

Cuidado con las comillas: dentro de un texto usa \". Una coma de más o de menos rompe el archivo.

Agregar un idioma

  1. Copia Eng.json como <Código>.json (solo letras, por ejemplo Por.json o Fra.json).
  2. Cambia "name" (por ejemplo "Português") y traduce los textos.
  3. Ponlo en MainInfo\Lang\ y en Data\IGK\Local\Lang\ del cliente. Aparece solo en Opciones > Juego > Idioma.
  4. Opcional: una carpeta Data\Local\<Código>\ con los archivos de ese idioma (ítems, skills, nombres de NPC). Si no está, se usan los de Data\Local\Eng\.

Cambiar el idioma de un jugador

En el juego: Opciones > Juego > Idioma (necesita reiniciar). O en config.ini: [Game] Language=Spn.

Otros textos que no están en el JSON

  • Mensajes que manda el servidor: en los archivos del servidor.
  • Nombres de ítems, skills y NPC: Data\Local\<idioma>\ (Item.bmd, Skill.bmd, NpcName.txt...).
  • Origen de los ítems del Gremory Case: MainInfo\Common\CustomMessageGremory.txt.
  • El nombre de la ventana: MainConnect.ini WindowName.

Data\IGK\Custom\Loading\ (pantallas de carga)

El juego tiene dos pantallas de carga. Cada una usa tus imágenes si están; si no, la de siempre.

PantallaImágenesQué lleva
Al abrir el juegoloading_01 a loading_04 (.jpg o .png, 1920x1080; sale una al azar)Barra de carga, porcentaje, logo y texto de lo que se carga
Al entrar al juego con el personajeloading_game_01 a loading_game_04 (igual)Logo y un fundido al empezar; sin barra

Piezas de la barra (en la misma carpeta):

ArchivoQué es
loading_bar_back.pngLa barra vacía (en IGK, 1440x60; la ranura empieza en x=120, y=23 y mide 1200x14).
loading_bar_fill.pngEl relleno; se muestra desde la izquierda hasta el porcentaje.
loading_bar_head.pngOpcional: la punta del relleno.
loading_digits.pngLos caracteres 0123456789%, cada uno en un cuadro del mismo ancho.
loading_logo.pngEl logo del servidor. Sin el archivo, no hay logo.

Para poner tu logo: reemplaza loading_logo.png (PNG con transparencia). Para poner tus fondos: reemplaza loading_01.jpg, loading_02.jpg (puedes agregar _03 y _04) y loading_game_01.jpg, loading_game_02.jpg.

loading.ini

Las medidas son píxeles de una pantalla de 1920x1080 (el juego las ajusta a la ventana). Si falta una clave, vale el valor de fábrica.

SecciónClaveQué esEn IGK
[Startup]BarYCentro de la barra, desde arriba.990
[Startup]SlotX, SlotYDentro de loading_bar_back.png, dónde empieza la ranura del relleno.120, 23
[Startup]DigitGapDel borde de arriba de la ranura a la línea base del porcentaje.17
[Startup]DigitBaselineLínea base de los números dentro de cada cuadro de loading_digits.png.50
[Startup]DigitSpacingEspacio extra entre caracteres del porcentaje.0
[Startup]ParallelLoad1 = carga las texturas con varios núcleos (más rápido); 0 = un solo núcleo.1
[Startup]Logo, LogoX, LogoBottomLogo sí/no, su centro horizontal y su borde de abajo.1, 960, 925
[Game]Logo, LogoX, LogoBottomIgual, en la carga al entrar al juego.1, 960, 1040
[Game]FadeMsFundido al empezar, en milisegundos (0 = sin fundido).500
[Logo]ScaleTamaño del logo en %, en las dos pantallas.100
[Text]ShowTexto de lo que se carga ("Cargando ítems custom (812/1430)"): 1 sí, 0 no.1
[Text]Counter1 = con el conteo de archivos.1
[Text]Y, SizeAltura del texto y tamaño de letra.1030, 20
[Text]Font, Bold, ColorLetra de Windows, negrita (1/0) y color R, G, B.Arial, 1, 235 225 205

Las frases de cada parte de la carga ("Cargando ítems custom"...) están en el archivo de idioma.

loading_profile.txt y loading_files.txt los escribe el juego en cada carga para saber de antemano cuánto falta. Se pueden borrar sin problema.

Logos del login y de las capturas

  • Logo de MU en el login: Data\Logo\MU-logo.tga (el juego abre el .OZT del mismo nombre) y MU-logo_g.jpg.
  • Logo en las capturas de pantalla: Data\Interface\HUD\MU-logo.OZT, activado con MainInfo.ini [Custom] PrintLogo.

Video de la lista de servidores

  • Activar: MainInfo\MainInfo.ini [Custom] ServerListVideo = 1, correr el Encoder.
  • Archivo: Data\IGK\Custom\Serverlist\bg_serverlist.mp4 en el cliente. Se ve en bucle detrás de la lista de servidores y del login, en lugar del mapa de SceneLogin.
  • Su audio suena en lugar de la música del login, al volumen de música de Opciones.
  • Se ajusta a la ventana recortando lo que sobra. Recomendado: H.264, 1920x1080 (IGK se probó con un video así a 30 fps).
  • Si el archivo falta o no se puede reproducir, queda el mapa con su música.
  • En PC necesita Windows 8 o más nuevo.
  • Para cambiarlo: reemplaza bg_serverlist.mp4 con tu video (mismo nombre).

Texturas HD (IgkGamers HD Tools)

Cómo funcionan las texturas HD

  • Las texturas HD están en Data\HD\ del cliente, con la misma ruta y nombre que la original (por ejemplo Data\HD\World1\TileGrass01.jpg para Data\World1\TileGrass01.OZJ).
  • Las originales no se tocan.
  • El jugador las activa en Opciones > Gráficos > Texturas > "Texturas HD" (o config.ini [Graphics] HDTextures=1) y reinicia. Esa casilla solo aparece si el cliente tiene la carpeta Data\HD.
  • Una HD debe medir de 1 a 8 veces la original y tener el mismo dibujo.
  • Para quitar las HD del cliente: borra Data\HD (o HDTextures=0).
  • Memoria de video: a x2 cada textura ocupa 4 veces más. Con "Compresión de texturas" activada se ve igual de nítido con mucha menos memoria. En gráficas con poca memoria conviene usar las dos cosas juntas.

IgkGamers HD Tools paso a paso

Programa: HDTools\IgkGamersHDTools.exe (Windows 10 u 11 de 64 bits). Para el método con IA necesita una tarjeta gráfica con Vulkan y la carpeta realesrgan junto al .exe.

  1. Doble clic en IgkGamersHDTools.exe.
  2. Carpeta Data del cliente: elige la carpeta Data de tu cliente (con Examinar...).
  3. La lista muestra cada carpeta con texturas, cuántas ya están en HD y cuántas faltan. Marca las que quieras. También puedes arrastrar carpetas o archivos a la ventana.
  4. Elige:
    • Método: IA (recomendado: agrega detalle) o Simple (solo agranda).
    • Escala: x2 (recomendado) o x4 (4 veces más memoria que x2).
    • Rehacer las que ya están en HD: sin marcar, solo hace las que faltan (puedes parar y seguir otro día).
  5. Convertir. Muestra el avance y el tiempo. Detener para; lo hecho se queda.
  6. Prueba en el juego con "Texturas HD" activado.

Otros botones:

BotónQué hace
RevisarComprueba las HD: avisa las que el juego no usaría (sin original, tamaño incorrecto, archivo ilegible, a medias). Ofrece pasar las TGA a PNG (ocupan la mitad).
Quitar HD...Manda a la papelera las HD de las carpetas marcadas.
Paquete celular...Arma el paquete para celulares (ver abajo).
Abrir Data\HDAbre la carpeta en el Explorador.

Tiempos de referencia con IA a x2 (gráfica de gama media): unas 4 texturas por segundo; Lorencia unos 2 minutos; unas 7.600 texturas (mapas, personajes, armas, monstruos e interfaz) en media hora.

No convierte texturas de menos de 8 píxeles, de más de 1024, .OZT sin transparencia ni los datos del mapa (TerrainLight, TerrainHeight).

Retocar a mano: las HD son JPEG o PNG normales. Puedes editarlas en Photoshop o GIMP con el mismo nombre, carpeta y dibujo, de 1 a 8 veces el tamaño original. Luego usa Revisar.

Paquete para celular (HDTools\Mobile)

Paquete celular... arma siempre en HDTools\Mobile\:

  • Mobile\Data: copia de Data con las texturas del mundo comprimidas para celular (archivos .ktx en lugar de la original). La usa el cliente web en el celular.
  • Mobile\data.zip: lo mismo comprimido; es lo que descarga la app de Android.

La interfaz va sin comprimir (para que se lea bien). Data\HD no va en el paquete. Al rehacerlo solo procesa lo nuevo o cambiado. El cliente de PC no usa este paquete. Detalles de publicación en 09_ANDROID.md y 10_WEB.md.

Línea de comandos de HD Tools

ComandoQué hace
IgkGamersHDTools -list "C:\Cliente\Data"Lista carpetas y cuántas HD tienen.
IgkGamersHDTools -convert "C:\Cliente\Data" World3 Object3 ItemConvierte esas carpetas.
IgkGamersHDTools -convert "C:\Cliente\Data" -all -x4 -redoTodo, a x4, rehaciendo.
IgkGamersHDTools -convert "C:\Cliente\Data" Interface -simpleSin IA.
IgkGamersHDTools -check "C:\Cliente\Data" -all -compactRevisa y pasa TGA a PNG.
IgkGamersHDTools -remove "C:\Cliente\Data" Object3Quita las HD de esa carpeta.
IgkGamersHDTools -mobile "C:\Cliente\Data"Arma el paquete del celular.

En cmd usa start /wait IgkGamersHDTools ... para esperar a que termine.


Problemas comunes

"Data\MainInfo.igk - Archivo dañado." al abrir el juego

El MainInfo.igk no corresponde a ese Main.exe (por ejemplo, se actualizó el cliente y no el Encoder, o al revés), o el archivo se copió mal. Corre el Encoder de la misma versión que el Main.exe y copia el MainInfo.igk nuevo.

"Data\MainInfo.igk - No se encuentra el archivo"

Falta Data\MainInfo.igk en el cliente. Corre el Encoder y cópialo.

"Data\Local\TextInfo.igk - ¡no está o no es válido!"

Falta o está roto Data\Local\TextInfo.igk. Corre el Encoder y cópialo.

Cambié MainInfo.ini y no pasa nada

  • No corriste el Encoder, o copiaste el .igk a otra carpeta. Revisa PathExport y Encoder.log.
  • La clave está comentada como MIGRATED to the player's config.ini: ahora se cambia en Opciones del jugador.
  • El jugador tiene un cliente viejo: hay que repartirle el MainInfo.igk nuevo.

Un texto se ve como "txt_1234"

Falta ese texto en el archivo de idioma del jugador (Data\IGK\Local\Lang\<idioma>.json). Agrégalo (copia la línea de Eng.json y tradúcela).

Todo el juego sale en inglés aunque elegí Español

El archivo Spn.json del cliente está roto (por ejemplo, falta una coma) o falta. Revisa el JSON en un validador; MuError.log puede indicar la línea.

La interfaz se ve rara después de editar interface_N.json

Vuelve a poner el valor de fábrica copiándolo de MainInfo\Interface\reference_N.json, o borra la línea (lo que falta usa el valor de fábrica).

Una imagen de Overrides no se usa

Debe tener el mismo nombre, la misma ruta y la misma medida (ancho, alto y canales) que la original de Season 6. Si no, el juego usa la original.

No aparece la casilla "Texturas HD" en Opciones

El cliente no tiene la carpeta Data\HD. Conviértelas con HD Tools.


Preguntas frecuentes

P: ¿Dónde cambio la IP del servidor en el cliente? R: En MainInfo\MainConnect.ini, clave IpAddress (y IpAddressPort si cambiaste el puerto del ConnectServer). Luego corre Encoder.exe y reparte el Data\Local\Connect.igk nuevo.

P: ¿Dónde cambio el nombre de la ventana del juego? R: MainInfo\MainConnect.ini, clave WindowName. Corre el Encoder.

P: Los jugadores no pueden entrar: dice error de versión. ¿Qué reviso? R: Que ClientVersion y ClientSerial de MainConnect.ini sean iguales a ServerVersion y ServerSerial de GameServerInfo - Common.dat del GameServer y del GameServerCS. Después corre el Encoder y reparte el Connect.igk.

P: ¿Cómo cambio la interfaz del juego (Season 6, Season 1, Legends...)? R: MainInfo\MainInfo.ini [Interface] LookAndFeel (0 Season 6, 1 Season 1, 2 Season 2/3, 3 Ex700, 4 Legends). Corre el Encoder y reinicia el juego. El 5 está incompleto.

P: ¿Cómo muevo el chat, el minimapa o un orbe de la barra? R: En Data\IGK\Settings\Interface\interface_N.json del cliente (N = tu LookAndFeel). Guarda con el juego abierto y se mueve en un segundo. Season 6 (tipo 0) no tiene archivo.

P: ¿Cómo pongo mi logo en la pantalla de carga? R: Reemplaza Data\IGK\Custom\Loading\loading_logo.png por tu logo en PNG. El tamaño se ajusta con loading.ini [Logo] Scale.

P: ¿Cómo cambio el video de la lista de servidores? R: Reemplaza Data\IGK\Custom\Serverlist\bg_serverlist.mp4 por tu video (mismo nombre, H.264). Debe estar ServerListVideo = 1 en MainInfo.ini.

P: ¿Cómo traduzco o cambio un texto del juego? R: Edita MainInfo\Lang\<idioma>.json en UTF-8, respetando %d y %s, y copia el archivo a Data\IGK\Local\Lang\ del cliente. No hace falta el Encoder.

P: ¿Puedo limitar los FPS de todos los jugadores desde MainInfo.ini? R: No. FpsRenderMax ya no se lee. Cada jugador elige su límite en Opciones > Pantalla (config.ini [Display] FpsLimit).

P: ¿Cómo activo el ciclo de día y noche? R: Se enciende en el servidor (DayNightSwitch y claves DayNight en GameServerInfo - Common.dat). En el cliente, cada mapa lo sigue si tiene DayNight = 1 en MainInfo\Map\CustomSky.txt.

P: ¿Cómo agrego un ítem nuevo al cliente? R: Pon el modelo en Data\Item\ y sus texturas en Data\Item\Texture\, agrégalo a Item.bmd del cliente y a Item.txt del servidor, y agrega su fila en MainInfo\Item\CustomItem.txt (y su posición en CustomItemPosition.txt). Corre el Encoder.

P: ¿Cómo quito las clases Summoner y Rage Fighter de la creación de personaje? R: MainInfo.ini [Custom] RemoveClass = 2. Corre el Encoder.

P: ¿Por qué el menú F4 no muestra "Banco de ítems" o "Misiones"? R: "Banco de ítems" necesita EnableJewelOfInventory = 1. Recompensa diaria, Gremory Case, Misiones y Pase de temporada solo aparecen si el servidor los tiene activados.

P: ¿Debo incluir mi config.ini en el cliente que reparto? R: No. Lleva tus gustos (motor, resolución, cámara). Sin él, el juego crea uno con valores por defecto para cada jugador.

P: ¿Las texturas HD son obligatorias? R: No. Son opcionales: cada jugador las activa en Opciones. Si no quieres repartirlas (pesan unos 580 MB), quita la carpeta Data\HD del cliente.

¿No encontraste lo que buscabas? Si eres cliente, pregúntale a tu asistente de soporte: responde con esta misma documentación. Si todavía no lo eres, escríbenos: