# 📚 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
```
---
#### 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!** ✨🎮