# 📚 GUÍA MAESTRA - Configuración Completa Servidor MU Online ## GamersCL - KG-Emulator > **Versión**: 1.0 > **Autor**: Documentación para Miguel - GamersCL > **Emulador**: KG-Emulator > **Nivel**: Principiante a Avanzado --- # 📑 ÍNDICE GENERAL ## PARTE 1: INTRODUCCIÓN Y ESTRUCTURA 1. [Introducción al Servidor MU Online](#introduccion) 2. [Estructura de Carpetas](#estructura-carpetas) 3. [Tipos de Archivos](#tipos-archivos) 4. [Niveles VIP (AL0-AL3)](#niveles-vip) 5. [Cómo Hacer Backups](#backups) ## PARTE 2: CONFIGURACIÓN BÁSICA DEL SERVIDOR 6. [GameServerInfo (Archivos .dat)](#gameserverinfo) - Command.dat - Common.dat - Character.dat - Event.dat - Custom.dat - Skill.dat - ChaosMix.dat ## PARTE 3: SISTEMA DE PERSONAJES 7. [Comandos del Servidor](#comandos) 8. [Sistema de Reset y Master Reset](#reset-system) 9. [Sistema de Experiencia](#experiencia) 10. [Skills y Master Skills](#skills) 11. [Clases de Personajes](#clases) ## PARTE 4: ITEMS Y ECONOMÍA 12. [Sistema de Items](#items) 13. [Cash Shop](#cashshop) 14. [Sistema de Drops](#drops) 15. [Chaos Machine](#chaosmachine) 16. [Joyas y Opciones](#joyas) ## PARTE 5: EVENTOS Y MAPAS 17. [Blood Castle](#bloodcastle) 18. [Devil Square](#devilsquare) 19. [Chaos Castle](#chaoscastle) 20. [Eventos Personalizados](#eventos-custom) 21. [Sistema de Invasiones](#invasiones) ## PARTE 6: MONSTRUOS Y NPCs 22. [Configuración de Monstruos](#monstruos) 23. [Monster SetBase por Mapa](#monstersetbase) 24. [NPCs y Tiendas](#npcs) 25. [Sistema de Quests](#quests) ## PARTE 7: SISTEMAS AVANZADOS 26. [Sistema VIP](#sistema-vip) 27. [Sistema de Marriage](#marriage) 28. [Sistema de Ranking](#ranking) 29. [Lucky Wheel](#luckywheel) 30. [Bots y Helpers](#bots) ## PARTE 8: SCRIPTS LUA 31. [Introducción a Scripts LUA](#lua-intro) 32. [Comandos Personalizados](#lua-commands) 33. [Sistemas Personalizados](#lua-systems) ## PARTE 9: SEGURIDAD Y ANTIHACK 34. [Sistema AntiHack](#antihack) 35. [Filtros y Restricciones](#filtros) ## PARTE 10: APÉNDICES 36. [Códigos de Items](#codigos-items) 37. [Códigos de Mapas](#codigos-mapas) 38. [Códigos de Monstruos](#codigos-monstruos) 39. [Glosario de Términos](#glosario) 40. [Resolución de Problemas](#troubleshooting) --- # PARTE 1: INTRODUCCIÓN Y ESTRUCTURA ## 1. Introducción al Servidor MU Online ### ¿Qué es un Servidor MU Online? MU Online es un MMORPG que funciona con una arquitectura cliente-servidor. Tu servidor **GamersCL** ejecuta el emulador **KG-Emulator**, que simula el servidor oficial del juego. ### Componentes Principales: ``` Servidor MU Online (GamersCL) ├── GameServer.exe → Servidor de juego principal ├── ConnectServer.exe → Gestiona conexiones ├── JoinServer.exe → Coordina múltiples servers ├── Base de Datos SQL → Almacena cuentas y personajes └── Archivos de Config → Todo lo que vamos a aprender ``` ### Filosofía de Configuración: > "Todo en MU Online se puede configurar sin programar" Los archivos de configuración te permiten: - ✅ Modificar tasas de experiencia, drop, daño - ✅ Crear eventos personalizados - ✅ Configurar comandos y costos - ✅ Diseñar sistemas de recompensas - ✅ Personalizar la economía completa del servidor --- ## 2. Estructura de Carpetas ### Carpeta Principal: `KG_Data/` ``` KG_Data/ │ ├── 📁 CashShop/ → Tienda de Cash ├── 📁 Character/ → Configuración de personajes ├── 📁 Events/ → Eventos del servidor ├── 📁 Hack/ → Sistema Anti-Hack ├── 📁 ItemBagManager/ → Cajas de items ├── 📁 Items/ → Base de datos de items ├── 📁 Langs/ → Idiomas del servidor ├── 📁 Maps/ → Configuración de mapas ├── 📁 Monster/ → Monstruos y spawns ├── 📁 MuunSystem/ → Sistema de Muuns ├── 📁 Npc/ → NPCs personalizados ├── 📁 Scripts/ → Scripts LUA ├── 📁 Shops/ → Tiendas de NPCs └── 📁 Warps/ → Teleports y movimiento ``` ### Archivos GameServerInfo (Fuera de KG_Data): ``` Data/ ├── GameServerInfo - Command.dat ├── GameServerInfo - Common.dat ├── GameServerInfo - Character.dat ├── GameServerInfo - Event.dat ├── GameServerInfo - Custom.dat ├── GameServerInfo - Skill.dat └── GameServerInfo - ChaosMix.dat ``` --- ## 3. Tipos de Archivos ### 📄 Archivos .txt **Uso**: Tablas de datos, listas de configuración **Editor**: Notepad++, Visual Studio Code **Ejemplo**: `Item.txt`, `Monster.txt` **Formato típico**: ``` // Comentario Index Name Value1 Value2 Value3 0 "Item1" 100 50 1 1 "Item2" 200 75 2 ``` --- ### 📄 Archivos .dat **Uso**: Configuración principal del servidor **Editor**: Notepad++, Visual Studio Code **Ejemplo**: `Command.dat`, `Common.dat` **Formato típico**: ```ini [GameServerInfo] ;Comentario ParameterName = Value AnotherParameter = Value ``` --- ### 📄 Archivos .xml **Uso**: Configuraciones complejas con jerarquía **Editor**: Notepad++, XML Editor **Ejemplo**: `KG_CustomQuest.xml` **Formato típico**: ```xml Example 100 ``` --- ### 📄 Archivos .lua **Uso**: Scripts programables **Editor**: Notepad++, VS Code con Lua extension **Ejemplo**: `GameServer.lua` **Formato típico**: ```lua -- Comentario function MiFunction() -- Código aquí end ``` --- ## 4. Niveles VIP (AL0-AL3) ### ¿Qué significan AL0, AL1, AL2, AL3? **AL** = **Account Level** (Nivel de cuenta VIP) ``` AL0 = Jugadores Normales (sin VIP) AL1 = VIP Nivel 1 AL2 = VIP Nivel 2 AL3 = VIP Nivel 3 (Premium) ``` ### Ejemplo en Configuración: ```ini CommandResetMoney_AL0 = 2000000 ; Normales pagan 2M CommandResetMoney_AL1 = 1500000 ; VIP1 pagan 1.5M CommandResetMoney_AL2 = 1000000 ; VIP2 pagan 1M CommandResetMoney_AL3 = 1000000 ; VIP3 pagan 1M ``` ### ¿Cómo se Asigna el VIP? 1. **Base de Datos**: Tabla `MEMB_INFO`, columna `AccountLevel` 2. **Comando**: `/setvip ` 3. **Panel Web**: Si tienes panel de administración --- ## 5. Cómo Hacer Backups ### ⚠️ REGLA DE ORO: Siempre haz backup ANTES de modificar ### Método Manual: ```bash # Copia la carpeta completa xcopy /E /I "KG_Data" "KG_Data_Backup_2025-01-06" # O solo el archivo que vas a modificar copy "KG_Data\Character\KG_CommandManager.txt" "KG_Data\Character\KG_CommandManager.txt.backup" ``` ### Método Automático (Script .bat): ```batch @echo off set fecha=%date:~-4,4%%date:~-7,2%%date:~-10,2% xcopy /E /I "KG_Data" "Backups\KG_Data_%fecha%" echo Backup completado: KG_Data_%fecha% pause ``` --- # PARTE 2: CONFIGURACIÓN BÁSICA DEL SERVIDOR ## 6. GameServerInfo (Archivos .dat) Los archivos `.dat` son el corazón de la configuración del servidor. --- ### 📁 GameServerInfo - Command.dat **Ubicación**: `Data/GameServerInfo - Command.dat` **Propósito**: Configurar comandos del sistema (reset, master reset, etc.) #### Secciones Principales: ##### 🔹 Post Command Settings ```ini CommandPostType = 8 ``` **Valores**: - 0 = Todos pueden hacer /post - 1-7 = Diferentes niveles de restricción - 8 = Solo GMs pueden hacer /post --- ##### 🔹 Reset Command Settings ```ini CommandResetType = 1 ; 0 = Mantiene puntos ; 1 = Resetea puntos CommandResetLevel_AL0 = 400 ; Nivel requerido para reset CommandResetMoney_AL0 = 2000000 ; Zen necesario para reset CommandResetLimit_AL0 = 10000 ; Máximo de resets totales CommandResetLimitDay_AL0 = 10000 ; Máximo de resets por día CommandResetStartLevel_AL0 = 1 ; Nivel al que vuelves después del reset CommandResetPoint_AL0 = 1 ; Puntos que ganas por reset ``` **Ejemplo Práctico**: ```ini ; Configuración para servidor x10000 rates CommandResetLevel_AL0 = 400 ; Reset al llegar a 400 CommandResetMoney_AL0 = 5000000 ; Cuesta 5M zen CommandResetLimit_AL0 = 999 ; Máximo 999 resets CommandResetLimitDay_AL0 = 50 ; Máximo 50 por día CommandResetStartLevel_AL0 = 1 ; Vuelve a nivel 1 CommandResetPoint_AL0 = 500 ; Gana 500 puntos ``` --- ##### 🔹 Master Reset Command Settings ```ini CommandMasterResetType = 0 ; 0 = Mantiene puntos ; 1 = Resetea puntos CommandMasterResetLevel_AL0 = 400 ; Nivel requerido CommandMasterResetReset_AL0 = 0 ; Cantidad de resets normales necesarios CommandMasterResetLimit_AL0 = 10000 ; Máximo de master resets CommandMasterResetStartLevel_AL0 = 400 ; Nivel al que vuelves CommandMasterResetStartReset_AL0 = 1 ; Resets normales con los que quedas CommandMasterResetPoint_AL0 = 400 ; Puntos que ganas ``` --- ##### 🔹 Marry Command Settings ```ini CommandMarryLevel = 150 ; Nivel mínimo para casarse CommandMarryCost = 350 ; Costo en coins CommandMarryNoticeDelay = 60 ; Tiempo de aviso en segundos CommandMarryMinTime = 604800 ; Tiempo mínimo casado (en segundos) ; 604800 = 7 días ``` --- ##### 🔹 Command Rename Settings ```ini CommandRenameDelay_AL0 = 60 ; Tiempo de espera entre cambios de nombre (segundos) CommandRenameNeedTicket = 0 ; 0 = No necesita ticket físico ; 1 = Necesita ticket en inventario ``` **⚠️ Nota**: El costo del rename está en `KG_CommandManager.txt` --- ### 📁 GameServerInfo - Common.dat **Ubicación**: `Data/GameServerInfo - Common.dat` **Propósito**: Configuraciones generales del servidor #### Secciones Principales: ##### 🔹 Server Settings ```ini ServerName = GamersCL ServerCode = 0 ServerPort = 55901 ``` ##### 🔹 Experience Settings ```ini ; Experiencia base AddExperience = 1 ; Multiplicador: 1 = rates x1, 100 = rates x100 MoneyAmountDropRate = 100 ; % de dinero que dropean los monstruos ``` ##### 🔹 Guild Settings ```ini GuildCreate_AL0 = 1 ; ¿Pueden crear guild? GuildCreate_AL1 = 1 GuildCreate_AL2 = 1 GuildCreate_AL3 = 1 ``` ##### 🔹 PK Settings ```ini PKLimitFree = 3 ; Cantidad de PKs antes de ser considerado PK PKItemDrop = 1 ; Items que pierdes al morir siendo PK ``` --- ### 📁 GameServerInfo - Character.dat **Ubicación**: `Data/GameServerInfo - Character.dat` **Propósito**: Estadísticas y configuración de personajes ##### 🔹 Character Stats ```ini ; Vida por punto de Vitality VitalityToLife = 3 ; Cada punto de VIT da 3 de HP ; Maná por punto de Energy EnergyToMana = 3 ; Cada punto de ENE da 3 de MP ; Puntos de stat por nivel LevelPoint_AL0 = 5 ; Cada nivel da 5 puntos de stat ``` ##### 🔹 Character Creation ```ini CreateCharacter_AL0 = 1 ; ¿Pueden crear personajes? CreateCharacterStartLevel_AL0 = 1 ; Nivel inicial CreateCharacterStartMoney_AL0 = 0 ; Zen inicial ``` --- ### 📁 GameServerInfo - Event.dat **Ubicación**: `Data/GameServerInfo - Event.dat` **Propósito**: Activar/desactivar eventos globales ```ini BloodCastleEvent = 1 DevilSquareEvent = 1 ChaosCastleEvent = 1 IllusionTempleEvent = 1 CastleSiegeEvent = 1 ``` --- ### 📁 GameServerInfo - Custom.dat **Ubicación**: `Data/GameServerInfo - Custom.dat` **Propósito**: Sistemas personalizados de KG-Emulator ##### 🔹 MuHelper Offline ```ini MuHelperOfflineSwitch = 1 ; Activar/desactivar helper offline MuOffHelperTime_AL0 = 60 ; Tiempo máximo de helper offline (minutos) MuHelperOfflineRequireLevel_AL0 = 6 ; Nivel mínimo para usar helper offline ``` ##### 🔹 Lucky Wheel ```ini LuckyWheel_CoinType = 0 ; 0 = WCoinC, 1 = WCoinP, 2 = GlobinPoint, 3 = Ruud LuckyWheel_CoinValue = 100 ; Costo por tirada ``` ##### 🔹 Custom Store ```ini CustomStoreTime_AL0 = 0 ; Tiempo máximo de tienda offline (0 = ilimitado) CustomStore_DelayBuy = 5000 ; Delay entre compras (milisegundos) ``` --- # PARTE 3: SISTEMA DE PERSONAJES ## 7. Comandos del Servidor **Archivo**: `KG_Data/Character/KG_CommandManager.txt` ### Estructura del Archivo: ``` #Index #Command #Enable #Money #MinLevel #MaxLevel #MinReset #MaxReset #Delay #GM #WC #WP #GP #Ruud ``` ### Campos Explicados: | Campo | Descripción | Valores | |-------|-------------|---------| | **Index** | Número único del comando | 0, 1, 2... | | **Command** | Nombre del comando | "/move", "/reset" | | **Enable (AL0-AL3)** | Activado para cada VIP | 0 = No, 1 = Sí | | **Money (AL0-AL3)** | Costo en Zen | 0-999999999 | | **MinLevel (AL0-AL3)** | Nivel mínimo | 0-400 | | **MaxLevel (AL0-AL3)** | Nivel máximo | 0-400 | | **MinReset (AL0-AL3)** | Resets mínimos | 0-999 | | **MaxReset (AL0-AL3)** | Resets máximos | 0-999 | | **Delay** | Tiempo de espera | Segundos | | **GM** | Requiere GM | 0=No, 1=GM, 2=Admin | | **WC** | Costo WCoinC | 0-9999 | | **WP** | Costo WCoinP | 0-9999 | | **GP** | Costo GoblinPoint | 0-9999 | | **Ruud** | Costo Ruud | 0-9999 | ### Comandos Principales: #### 🔹 /move ``` 0 "/move" 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ``` **Función**: Mover a un mapa **Sintaxis**: `/move ` **Configuración**: Gratis para todos --- #### 🔹 /reset ``` 11 "/reset" 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ``` **Función**: Resetear personaje **Sintaxis**: `/reset` o `/reset auto` **Configuración**: Ver `Command.dat` para requisitos --- #### 🔹 /pk ``` 7 "/pk" 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ``` **Función**: Limpiar PK **Sintaxis**: `/pk` **Configuración**: Gratis para todos --- #### 🔹 /changename ``` 38 "/changename" 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 ``` **Función**: Cambiar nombre del personaje **Sintaxis**: `/changename NuevoNombre` **Costo**: 500 WCoinC --- ### Ejemplos de Configuración: #### Hacer /pk gratis solo para VIPs: ``` 7 "/pk" 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ``` - Enable AL0 = 0 (desactivado para normales) - Enable AL1-AL3 = 1 (activado para VIPs) --- #### Cobrar Zen por /move: ``` 0 "/move" 1 1 1 1 100000 50000 10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ``` - Money AL0 = 100,000 zen (normales) - Money AL1 = 50,000 zen (VIP1) - Money AL2 = 10,000 zen (VIP2) - Money AL3 = 0 zen (VIP3 gratis) --- ## 8. Sistema de Reset y Master Reset ### Configuración Principal **Archivo**: `GameServerInfo - Command.dat` ### Reset Normal #### Parámetros Clave: ```ini CommandResetType = 1 ; 0 = Mantiene stats, 1 = Resetea stats CommandResetLevel_AL0 = 400 ; Nivel requerido para reset CommandResetMoney_AL0 = 2000000 ; Zen que cuesta CommandResetLimit_AL0 = 10000 ; Máximo de resets permitidos CommandResetStartLevel_AL0 = 1 ; Nivel al que vuelves después del reset CommandResetPoint_AL0 = 1 ; Base de puntos que ganas (se multiplica por rates) CommandResetPointRateDW = 100 ; Multiplicador de puntos para Dark Wizard ``` ### Tabla de Puntos por Clase: ```ini CommandResetPointRateDW = 100 ; Dark Wizard CommandResetPointRateDK = 100 ; Dark Knight CommandResetPointRateFE = 100 ; Fairy Elf CommandResetPointRateMG = 100 ; Magic Gladiator CommandResetPointRateDL = 100 ; Dark Lord CommandResetPointRateSU = 100 ; Summoner CommandResetPointRateRF = 100 ; Rage Fighter ``` **Cálculo de Puntos**: ``` Puntos Totales = CommandResetPoint × CommandResetPointRate / 100 ``` **Ejemplo**: - CommandResetPoint_AL0 = 500 - CommandResetPointRateDW = 150 - **Resultado**: DW gana 500 × 150 / 100 = **750 puntos** --- ### Master Reset ```ini CommandMasterResetLevel_AL0 = 400 ; Nivel requerido CommandMasterResetReset_AL0 = 0 ; Resets normales necesarios (0 = no requiere) CommandMasterResetMoney_AL0 = 0 ; Zen que cuesta CommandMasterResetLimit_AL0 = 10000 ; Máximo de master resets CommandMasterResetStartLevel_AL0 = 400 ; Nivel al que vuelves CommandMasterResetStartReset_AL0 = 1 ; Resets normales con los que quedas CommandMasterResetPoint_AL0 = 400 ; Puntos base que ganas ``` --- ### Sistema de Recompensas por Reset **Archivo**: `KG_Data/Character/KG_ResetReward.xml` Este sistema da premios automáticos al hacer reset. #### Estructura: ```xml 14 13 0 0 0 0 0 0 0 5 12 3 0 ``` **Ejemplo Práctico**: ```xml 14 13 10 ``` --- ## 9. Sistema de Experiencia ### Archivo Principal: `GameServerInfo - Common.dat` ```ini AddExperience = 1 ; Multiplicador de experiencia ; 1 = x1 rates ; 100 = x100 rates ; 1000 = x1000 rates MasterExperience = 1 ; Multiplicador de experiencia master ``` ### Tabla de Experiencia Custom **Archivo**: `KG_Data/Character/KG_ExperienceTable.txt` Permite crear tablas de experiencia personalizadas. ``` //Level Experience 1 100 2 200 3 400 4 800 ... ``` --- ### Experiencia en Party **Archivo**: `KG_Data/Character/KG_ExperiencePartyTable.txt` ``` //Party Size Bonus % 2 110 3 120 4 130 5 140 ``` **Ejemplo**: Party de 4 jugadores = +30% experiencia --- ## 10. Skills y Master Skills ### Archivo: `KG_Data/Character/Skills/Skill.txt` Define todas las skills del juego. ### Estructura: ``` //Index Name Damage Mana BP Range SkillType Class 0 "Poison" 10 7 0 3 1 0 1 "Meteorite" 20 14 0 3 1 0 ``` ### Campos: - **Index**: ID de la skill - **Damage**: Daño base - **Mana**: Consumo de maná - **BP**: Consumo de AG - **Range**: Rango de alcance - **SkillType**: Tipo de skill - **Class**: Clase que puede usar (0-6) --- ### Master Skill Tree **Archivo**: `KG_Data/Character/Skills/MasterSkillTree.txt` Define el árbol de Master Skills. ``` //Index Name RequireLevel RequirePoints MaxLevel 0 "Sword Mastery" 1 1 20 1 "Durability Increase" 1 1 20 ``` --- ### Damage de Skills **Archivo**: `KG_Data/Character/Skills/SkillDamage.xml` Modifica el daño de skills específicas. ```xml ``` --- ## 11. Clases de Personajes ### Códigos de Clase: ``` 0 = Dark Wizard (DW) 1 = Dark Knight (DK) 2 = Fairy Elf (FE) 3 = Magic Gladiator (MG) 4 = Dark Lord (DL) 5 = Summoner (SU) 6 = Rage Fighter (RF) ``` ### Items Iniciales por Clase **Archivo**: `KG_Data/Character/KG_StartItem.xml` ```xml ``` --- # PARTE 4: ITEMS Y ECONOMÍA ## 12. Sistema de Items ### Archivo Principal: `KG_Data/Items/Item.txt` Este es uno de los archivos más importantes del servidor. ### Estructura de una Línea: ``` Type Slot Skill Width Height Serial Option Drop Name Level DamageMin DamageMax Speed Durability MagicDur MagicPower ReqLevel ReqStr ReqDex ReqEne ReqVit ReqLead None DW DK FE MG DL SU RF ``` ### Ejemplo Real: ``` 0 0 0 1 2 1 1 1 "Kris" 6 6 11 50 20 0 0 0 40 40 0 0 0 0 1 1 1 1 1 1 1 ``` **Campos Importantes**: | Campo | Valor | Descripción | |-------|-------|-------------| | Type | 0 | Tipo de item (0=Espadas) | | Slot | 0 | Slot dentro del tipo | | Width | 1 | Ancho en inventario | | Height | 2 | Alto en inventario | | DamageMin | 6 | Daño mínimo | | DamageMax | 11 | Daño máximo | | ReqLevel | 0 | Nivel requerido | | ReqStr | 40 | Fuerza requerida | | DW-RF | 1 | Clases que pueden usar | --- ### Tipos de Items Principales: ``` Type 0-5 = Armas (espadas, hachas, cetros, etc.) Type 6-11 = Armaduras, pantalones, guantes, botas Type 7 = Cascos Type 12 = Alas, Pets, Pendants Type 13 = Anillos, Collares Type 14 = Joyas (Bless, Soul, Chaos, etc.) Type 15 = Scrolls, Pociones ``` --- ### Código GET_ITEM() En configuraciones y scripts, los items se referencian con: ```lua GET_ITEM(Type, Slot) ``` **Ejemplos**: ```lua GET_ITEM(14, 13) -- Jewel of Bless GET_ITEM(14, 14) -- Jewel of Soul GET_ITEM(12, 15) -- Wings of Elf GET_ITEM(0, 0) -- Kris GET_ITEM(7, 1) -- Dragon Helm ``` --- ### Opciones de Items #### Level (+) ``` Level 0-15 ``` Items pueden ser +0 hasta +15 #### Skill ``` 0 = Sin skill 1 = Con skill ``` #### Luck ``` 0 = Sin luck 1 = Con luck ``` #### Option ``` 0-7 = Opciones adicionales ``` Cada número agrega +4 de stats #### Excellent Options ``` Valor binario sumado: 1 = +HP después de matar 2 = +Mana después de matar 4 = +Velocidad de ataque 8 = +Damage 16 = +Nivel 32 = +Stats Ejemplo: 63 = TODAS (1+2+4+8+16+32) ``` #### Ancient Sets ``` 0 = Sin ancient 1-5 = Sets ancient específicos ``` #### Socket ``` 0-5 = Cantidad de sockets ``` --- ### Item Drop Configuration **Archivo**: `KG_Data/Items/ItemDrop.txt` Controla qué items pueden dropear en el suelo. ``` //Type Slot CanDrop 0 0 1 ; Kris puede dropear 14 13 0 ; Bless NO puede dropear ``` --- ### Item Value **Archivo**: `KG_Data/Items/ItemValue.txt` Define el valor en Zen de cada item. ``` //Type Slot Value 0 0 1000 ; Kris vale 1000 zen 14 13 9000000 ; Bless vale 9M zen ``` --- ## 13. Cash Shop ### Archivos Principales: 1. `KG_Data/CashShop/CashShopPackageMuEmu.txt` 2. `KG_Data/CashShop/CashShopProductMuEmu.txt` --- ### CashShopPackage.txt Define paquetes de items en la tienda. **Estructura**: ``` //Index Name Price Type Items... 0 "Beginner Pack" 500 1 ... ``` --- ### CashShopProduct.txt Define items individuales en la tienda. **Estructura**: ``` //Index Category Type Slot Level Opt Luck Skill Exc Ancient Socket Duration Price Name 0 0 14 13 0 0 0 0 0 0 0 0 50 "Jewel of Bless" ``` **Campos**: - **Category**: Categoría en la tienda (0-10) - **Price**: Precio en WCoinC/WCoinP - **Duration**: Duración en días (0 = eterno) --- ## 14. Sistema de Drops ### Drop de Items por Monstruo **Ubicación**: En los archivos MonsterSetBase ``` //Monster Map X Y Drop1 Drop2 ... 0 0 100 100 14-13 14-14 ... ``` --- ### Drop Event **Archivo**: `KG_Data/Events/KG_DropEvent.txt` Configura eventos de drop aumentado. ``` //Index Name DropRate Time 0 "Happy Hour" 200 60 ``` - **DropRate**: Porcentaje (200 = x2 drop) - **Time**: Duración en minutos --- ### EventItemBag **Ubicación**: `KG_Data/ItemBagManager/EventItemBag/` Cajas con drops aleatorios. **Ejemplo: 000 - Box of Luck.txt** ``` //Type Slot Level Rate Count 14 13 0 20 1 ; 20% de dar 1 Bless 14 14 0 15 1 ; 15% de dar 1 Soul ``` --- ## 15. Chaos Machine ### Archivo: `GameServerInfo - ChaosMix.dat` Configura las mezclas del Chaos Machine. ```ini [ChaosBox] ;Jewel of Bless Mix ChaosJewelOfBlessMixRate_AL0 = 75 ; 75% de éxito ;Item Level Up ChaosItemLevelUpNormalRate_AL0 = 60 ; 60% para subir de +10 a +11 ChaosItemLevelUpExcellentRate_AL0 = 50 ; 50% para subir excellent items ;Wing Mix ChaosWingMix_AL0 = 1 ; Activar/desactivar mezcla de alas ``` --- ### Mix Personalizados **Archivo**: `KG_Data/Character/ChaosMachine/KG_CustomMix.txt` Crear mezclas custom. ``` //Index Name Success% Need Result 0 "Custom Wing" 80 ... ... ``` --- ## 16. Joyas y Opciones ### Archivo: `KG_Data/Items/KG_Jewels.xml` ```xml ``` --- ### Harmony (Jewel of Harmony) **Archivo**: `KG_Data/Items/JewelOfHarmonyOption.txt` ``` //Type Opt1 Opt2 Opt3 0 1 2 3 ``` --- ### Socket System **Archivo**: `KG_Data/Items/SocketItemOption.txt` Define opciones de sockets. ``` //Socket Option Value 0 1 5 ``` --- # PARTE 5: EVENTOS Y MAPAS ## 17. Blood Castle **Archivo**: `KG_Data/Events/BloodCastle/BloodCastle.dat` ```ini [BloodCastleEvent] BloodCastleEvent = 1 ; Activar/desactivar BloodCastleStartTime = 3 ; Hora de inicio BloodCastleEventTime = 15 ; Duración del evento (minutos) ``` **Niveles de Blood Castle**: ``` BC1 = Level 15-80 BC2 = Level 81-130 BC3 = Level 131-180 BC4 = Level 181-230 BC5 = Level 231-280 BC6 = Level 281-330 BC7 = Level 331-380 BC8 = Level 381-400 ``` --- ## 18. Devil Square **Archivo**: `KG_Data/Events/DevilSquare/DevilSquare.dat` ```ini [DevilSquareEvent] DevilSquareEvent = 1 DevilSquareStartTime = 3 DevilSquareEventTime = 15 ; Tickets requeridos DevilSquareTicket1 = 1 DevilSquareTicket2 = 1 ``` --- ## 19. Chaos Castle **Archivo**: `KG_Data/Events/ChaosCastle/ChaosCastle.dat` ```ini [ChaosCastleEvent] ChaosCastleEvent = 1 ChaosCastleStartTime = 3 ``` --- ## 20. Eventos Personalizados ### Happy Hours **Archivo**: `KG_Data/Events/KG_HappyHours.xml` ```xml Weekend Bonus 200 200 6 0 23 ``` --- ### Online Lottery **Archivo**: `KG_Data/Events/KG_OnlineLottery.txt` Sistema de sorteo automático. ``` //Index Prize Type Slot Level Count 0 "Bless x10" 14 13 0 10 ``` --- ### Quiz Event **Archivo**: `KG_Data/Events/KG_QuizEvent.txt` Preguntas y respuestas automáticas. ``` //Question Answer Prize "¿Cuántas clases hay?" "7" Bless x5 ``` --- ## 21. Sistema de Invasiones **Archivo**: `KG_Data/Events/KG_InvasionManager.dat` ```ini [Invasion] InvasionIndex = 0 InvasionMap = 0 InvasionMonster = 100 InvasionCount = 50 ``` **Invasiones Comunes**: ``` Golden Invasion Red Dragon Invasion Kundun Invasion ``` --- # PARTE 6: MONSTRUOS Y NPCs ## 22. Configuración de Monstruos **Archivo**: `KG_Data/Monster/Monster.txt` ### Estructura: ``` //Index Name Level HP MP DamageMin DamageMax Defense MagicDefense 0 "Bull" 3 80 0 6 10 6 0 ``` ### Campos Importantes: - **Index**: ID del monstruo - **HP**: Puntos de vida - **Damage**: Daño que hace - **Defense**: Defensa física - **MagicDefense**: Defensa mágica --- ### Monster Custom **Archivo**: `KG_Data/Monster/KG_CustomMonster.xml` Crear monstruos personalizados. ```xml Super Boss 400 1000000 ``` --- ## 23. Monster SetBase por Mapa **Ubicación**: `KG_Data/Monster/MonsterSetBase/` Cada mapa tiene su archivo de spawns. ### Ejemplo: 000 - Lorencia.txt ``` //Monster Map X Y Dir Range 0 0 130 125 0 5 ; Bull spawns en Lorencia (130,125) ``` ### Campos: - **Monster**: Index del monstruo - **Map**: Número del mapa - **X, Y**: Coordenadas de spawn - **Dir**: Dirección (0-7) - **Range**: Rango de movimiento --- ### Mapas Principales: ``` 00 = Lorencia 01 = Dungeon 02 = Devias 03 = Noria 04 = Lost Tower 07 = Atlans 08 = Tarkan 10 = Icarus ``` --- ## 24. NPCs y Tiendas ### NPCs Personalizados **Ubicación**: `KG_Data/Npc/` #### KG_NpcQuest.xml NPCs para quests personalizadas. ```xml ¡Hola aventurero! ``` --- #### KG_NpcCommand.xml NPCs que ejecutan comandos. ```xml /reset ``` --- ### Tiendas de NPCs **Ubicación**: `KG_Data/Shops/Shop/` **Ejemplo: 000 - Hanzo the Blacksmith.txt** ``` //Type Slot Level Opt Luck Skill 0 0 0 0 0 0 ; Kris 0 1 0 0 0 0 ; Short Sword ``` --- ### Shop List **Archivo**: `KG_Data/Shops/ShopList.txt` Asignar tiendas a NPCs. ``` //NpcIndex ShopIndex 257 0 ; Hanzo usa Shop 0 ``` --- ## 25. Sistema de Quests ### Quests Normales **Ubicación**: `KG_Data/Character/Quests/Quest/` #### Quest.txt Define las quests. ``` //QuestIndex Name Level Class 0 "First Quest" 10 -1 ``` #### QuestObjective.txt Objetivos de la quest. ``` //QuestIndex ObjectiveType Target Count 0 0 10 5 ; Matar 5 Bulls ``` #### QuestReward.txt Recompensas de la quest. ``` //QuestIndex Exp Zen Item 0 1000 5000 14-13 ; Dar 1000 exp, 5000 zen y 1 Bless ``` --- ### Quests Personalizadas **Archivo**: `KG_Data/Character/Quests/KG_CustomQuest.txt` ``` //Index Name Description Objective Reward 0 "Kill Monsters" "Kill 100 monsters" ... ... ``` --- # PARTE 7: SISTEMAS AVANZADOS ## 26. Sistema VIP **Archivo**: `KG_Data/Character/KG_BuyVip.txt` Permite comprar VIP con items/coins. ``` //VIPLevel Days CoinType CoinAmount 1 30 0 1000 2 30 0 2000 3 30 0 5000 ``` **CoinType**: ``` 0 = WCoinC 1 = WCoinP 2 = GoblinPoint 3 = Ruud ``` --- ## 27. Sistema de Marriage **Archivo**: `KG_Data/Character/KG_MarriageSystem.xml` ```xml 150 500 0 ``` **Comandos**: ``` /marry ; Proponer matrimonio /accept ; Aceptar propuesta /divorce ; Divorciarse /trackmarry ; Ir al cónyuge ``` --- ## 28. Sistema de Ranking **Archivo**: `KG_Data/Character/KG_Ranking.txt` ``` //Type Name Reward 0 "Top Level" ... 1 "Top Reset" ... 2 "Top MasterLevel" ... ``` --- ### Rank User (Top Semanal/Mensual) **Archivo**: `KG_Data/Character/KG_RankUser.txt` ``` //Position ResetReward CoinReward 1 10 1000 2 5 500 3 3 300 ``` --- ## 29. Lucky Wheel **Archivo**: `KG_Data/Character/KG_LuckyWheel.xml` Sistema de ruleta. ```xml ``` **Configuración en Custom.dat**: ```ini LuckyWheel_CoinType = 0 LuckyWheel_CoinValue = 100 ``` --- ## 30. Bots y Helpers ### Bot Alchemist **Archivo**: `KG_Data/Character/Bots/BotAlquimista.xml` NPC que hace mezclas automáticas. ```xml ``` --- ### Bot Buffer **Archivo**: `KG_Data/Character/Bots/BotBuffer.xml` NPC que da buffs. ```xml ``` --- ### Bot Pets **Archivo**: `KG_Data/Character/Bots/BotPets.xml` Tienda de mascotas. ```xml ``` --- # PARTE 8: SCRIPTS LUA ## 31. Introducción a Scripts LUA ### ¿Qué es LUA? LUA es un lenguaje de programación ligero que permite crear sistemas personalizados en el servidor. ### Archivo Principal **Ubicación**: `KG_Data/Scripts/GameServer.lua` ```lua -- Cargar extensiones OpenExtension('LuaSystem') OpenExtension('Utils') OpenExtension('Commands') OpenExtension('Systems') -- Conectar a base de datos function GameServer() DataBase.Connect(3, "MuOnlineS6", "sa", "12345678") end ``` --- ### Estructura de Scripts ``` KG_Data/Scripts/ ├── Commands/ → Comandos custom ├── Systems/ → Sistemas custom ├── Utils/ → Utilidades ├── LuaSystem/ → Core del sistema └── Configs/ → Configuraciones ``` --- ## 32. Comandos Personalizados LUA ### Crear un Comando Custom **Archivo**: `KG_Data/Scripts/Commands/MiComando.lua` ```lua local Commands = require('Utils.ChatSystem') -- Registrar comando Commands.Register('/saludo', function(aIndex, text) local player = User.new(aIndex) -- Enviar mensaje al jugador SendMessage(player:getIndex(), 1, "¡Hola " .. player:getName() .. "!") -- Dar items player:addItem(14, 13, 0, 0, 0, 0, 0, 0, 0) return 1 end) ``` **Cargar el comando en GameServer.lua**: ```lua OpenExtension('Commands/MiComando') ``` --- ### Ejemplo: Comando de Teletransporte ```lua Commands.Register('/ir', function(aIndex, text, args) local player = User.new(aIndex) local destino = args[1] if destino == "lorencia" then player:move(0, 130, 125) elseif destino == "devias" then player:move(2, 200, 200) else SendMessage(aIndex, 1, "Destino inválido!") end return 1 end) ``` **Uso**: `/ir lorencia` --- ## 33. Sistemas Personalizados ### Quest System Custom **Archivo**: `KG_Data/Scripts/Systems/QuestSystemNpc.lua` Este archivo gestiona quests interactivas con NPCs. **Ejemplo de Quest**: ```lua -- Definir quest local quest = { Name = "Mi Primera Quest", NPC = 249, Objective = { MonsterIndex = 0, Count = 10 }, Reward = { Exp = 10000, Zen = 50000, Items = { {Type = 14, Index = 13, Count = 5} } } } ``` --- ### Sistema de Eventos Temporales ```lua local Schedule = require('LuaSystem.Schedule') -- Evento cada día a las 20:00 Schedule.Register('20:00:00', function() -- Código del evento SendMessageGlobal("¡Evento iniciado!") -- Spawnear monstruos for i = 1, 10 do SpawnMonster(0, 100, 130, 125) end end) ``` --- # PARTE 9: SEGURIDAD Y ANTIHACK ## 34. Sistema AntiHack **Archivo**: `KG_Data/Hack/AntiHack.xml` ### Configuración Principal: ```xml ``` --- ### Detección de Speed Hack ```xml 1 100 10 1 ``` --- ### Packet Check **Archivo**: `KG_Data/Hack/HackPacketCheck.txt` Lista de packets prohibidos. ``` //PacketID Action 0xC1 0 ; Permitir 0xC3 1 ; Bloquear ``` --- ## 35. Filtros y Restricciones ### Filtro de Nombres **Archivo**: `KG_Data/Character/KG_FilterRename.txt` Palabras prohibidas para nombres. ``` admin gm fuck shit ``` --- ### Filtro de Chat **Archivo**: `KG_Data/Character/KG_Filter.txt` Palabras censuradas en el chat. ``` spam scam ``` --- # PARTE 10: APÉNDICES ## 36. Códigos de Items Más Usados ### Joyas ``` GET_ITEM(14, 13) - Jewel of Bless GET_ITEM(14, 14) - Jewel of Soul GET_ITEM(14, 16) - Jewel of Chaos GET_ITEM(14, 22) - Jewel of Life GET_ITEM(14, 31) - Jewel of Creation ``` ### Alas ``` GET_ITEM(12, 0) - Wings of Elf +0 GET_ITEM(12, 1) - Wings of Heaven +0 GET_ITEM(12, 2) - Wings of Satan +0 GET_ITEM(12, 3) - Wings of Spirits +0 (MG) GET_ITEM(12, 4) - Wings of Soul +0 (DL) GET_ITEM(12, 5) - Wings of Dragon +0 (SU) GET_ITEM(12, 36) - Wings of Storm +0 GET_ITEM(12, 37) - Wings of Eternal +0 GET_ITEM(12, 38) - Wings of Illusion +0 GET_ITEM(12, 39) - Wings of Ruin +0 GET_ITEM(12, 40) - Wings of Despair +0 GET_ITEM(12, 41) - Wings of Dimension +0 GET_ITEM(12, 49) - Cape of Lord +0 ``` ### Pociones ``` GET_ITEM(14, 0) - Apple GET_ITEM(14, 1) - Small Healing Potion GET_ITEM(14, 2) - Medium Healing Potion GET_ITEM(14, 3) - Large Healing Potion GET_ITEM(14, 4) - Small Mana Potion GET_ITEM(14, 5) - Medium Mana Potion GET_ITEM(14, 6) - Large Mana Potion ``` ### Scrolls ``` GET_ITEM(13, 15) - Scroll of Archangel GET_ITEM(13, 16) - Blood Bone GET_ITEM(14, 11) - Town Portal Scroll ``` --- ## 37. Códigos de Mapas ``` 00 = Lorencia 01 = Dungeon 02 = Devias 03 = Noria 04 = Lost Tower 06 = Arena 07 = Atlans 08 = Tarkan 10 = Icarus 11-17 = Blood Castle 1-7 18-24 = Chaos Castle 1-7 30 = Valley of Loren 31 = Land of Trial 33 = Aida 34 = Crywolf 37 = Kanturu Relics 38 = Kanturu Core 51 = Elbeland 56 = Swamp of Calmness 57-58 = Raklion 63 = Vulcanus 80-81 = Karutan ``` --- ## 38. Códigos de Monstruos Comunes ``` 0 = Bull 1 = Hound 2 = Budge Dragon 14 = Skeleton 50 = Lich 53 = Giant 76 = Cyclops 100 = Golden Dragon 275 = Kundun ``` --- ## 39. Glosario de Términos **Términos Comunes**: | Término | Significado | |---------|-------------| | **AL** | Account Level (Nivel VIP) | | **WC** | WCoinC (Moneda Cash) | | **WP** | WCoinP (Moneda Cash Premium) | | **GP** | GoblinPoint | | **BC** | Blood Castle | | **DS** | Devil Square | | **CC** | Chaos Castle | | **IT** | Illusion Temple | | **CS** | Castle Siege | | **PK** | Player Killer | | **Drop** | Items que dejan los monstruos | | **Spawn** | Aparición de monstruos | | **NPC** | Non-Player Character | | **Reset** | Volver a nivel 1 con bonus | | **MReset** | Master Reset | --- ## 40. Resolución de Problemas ### El servidor no inicia **Posibles causas**: 1. Error en archivo de configuración (.dat, .txt, .xml) 2. Base de datos no disponible 3. Puerto ocupado **Solución**: 1. Revisar logs en `/Logs/` 2. Verificar sintaxis de archivos modificados 3. Restaurar backup del último archivo modificado --- ### Los cambios no se aplican **Causa**: No reiniciar el servidor **Solución**: Siempre reiniciar GameServer.exe después de cambios --- ### Items no aparecen **Posibles causas**: 1. Código GET_ITEM incorrecto 2. Item.txt mal configurado 3. No hay espacio en inventario **Solución**: 1. Verificar Type y Slot en Item.txt 2. Comprobar que el item puede ser llevado por la clase 3. Asegurar espacio en inventario --- ### Comandos no funcionan **Posibles causas**: 1. KG_CommandManager.txt mal configurado 2. Enable = 0 para el nivel VIP 3. No cumple requisitos (nivel, reset, etc.) **Solución**: 1. Revisar línea del comando en KG_CommandManager.txt 2. Verificar columna Enable para el VIP correspondiente 3. Comprobar requisitos de MinLevel, MinReset, etc. --- ### Eventos no se activan **Posibles causas**: 1. Evento desactivado en .dat 2. Horario incorrecto 3. Nivel incorrecto de jugadores **Solución**: 1. Verificar `EventSwitch = 1` en archivo del evento 2. Revisar horarios en configuración 3. Comprobar nivel de entrada en EventEntryLevel.xml --- ## 🎓 Consejos Finales ### Mejores Prácticas: 1. **Siempre hacer backup antes de modificar** 2. **Modificar un archivo a la vez** 3. **Probar cada cambio antes del siguiente** 4. **Documentar tus cambios** 5. **Usar Notepad++ con syntax highlighting** --- ### Herramientas Recomendadas: - **Notepad++**: Para editar archivos de texto - **VS Code**: Para scripts LUA y XML - **SQL Server Management Studio**: Para base de datos - **WinMerge**: Para comparar archivos - **Beyond Compare**: Para backups y comparaciones --- ### Comunidad y Recursos: - Foros de MU Online - Comunidades de Discord - GitHub con ejemplos - YouTube tutoriales --- ## 📞 Soporte Si necesitas ayuda específica con alguna configuración: 1. Identifica el archivo que necesitas modificar 2. Consulta esta guía en la sección correspondiente 3. Haz un backup del archivo 4. Realiza los cambios 5. Prueba en el servidor --- ## 🎮 ¡Listo para Configurar GamersCL! Con esta guía tienes **TODO** lo necesario para configurar cada aspecto de tu servidor MU Online. **¿Por dónde empezar?** 1. Ajusta rates básicos en `Common.dat` 2. Configura comandos en `KG_CommandManager.txt` 3. Personaliza eventos en carpeta `Events/` 4. Crea contenido custom con Scripts LUA --- *Guía Maestra creada para GamersCL* *Versión: 1.0 - Enero 2026* *By Claude & Miguel* 🎮✨ **¡Que tengas un servidor exitoso!** ✨🎮