IGK Emulator

Sistemas custom

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

Este archivo explica los sistemas propios (custom) del servidor: qué hace cada uno, dónde se configura y qué significa cada opción. Casi todos están en MuServer\Data\Custom\ y en MuServer\GameServer\Data\GameServerInfo - Custom.dat.

Otros archivos de esta documentación:

  • Eventos custom (Arena, Quiz, Lotería online, Drop de evento y demás): ver 04_EVENTOS.md.
  • Comandos (CustomCommandDescription.txt, CustomNpcCommand.txt, CustomMove.txt y la lista de comandos): ver 05_COMANDOS.md.
  • Opciones del cliente (MainInfo.ini, archivos de MainInfo\ y el Encoder): ver 08_CLIENTE_PC_Y_ENCODER.md.
  • Modo MOBA League of Masters: ver 07_LEAGUE_OF_MASTERS.md.

Conceptos comunes

Niveles de cuenta (VIP 0 a 3)

El VIP es el nivel de cuenta (AccountLevel). Hay 4 niveles:

NivelNombre que ve el jugadorSufijo en los archivos
0Free (sin VIP)_AL0, Vip0, RateAL0, Rate0
1Bronze_AL1, Vip1, RateAL1, Rate1
2Silver_AL2, Vip2, RateAL2, Rate2
3Gold_AL3, Vip3, RateAL3, Rate3

Casi todas las opciones del servidor tienen una versión por nivel de cuenta. Por ejemplo, en GameServerInfo - Common.dat, AddExperienceRate_AL2 es la experiencia de los VIP Silver. Así se da a cada VIP su ventaja.

Monedas: WCoinC, WCoinP y Goblin Points

El servidor tiene 3 monedas de cuenta. Cambian de nombre según el archivo:

MonedaOtros nombres en los archivosColumna en la base de datos
WCoinCCoin1, WC, Cash, WcoinCashShopData.WCoinC
WCoinPCoin2, WP, WCP, GoldCashShopData.WCoinP
Goblin PointsCoin3, GP, GBP, PcPoint, WCGCashShopData.GoblinPoint
  • Las monedas son por cuenta (las comparten todos los personajes de la cuenta). Se guardan en la tabla CashShopData de la base de datos.
  • Cómo se dan: con el comando de GM /setcoin <personaje> <moneda 1|2|3> <cantidad>, editando la tabla CashShopData, o como premio de muchos sistemas (reset, quests, Season Pass, ruleta, colector, jefes, League of Masters, premio por tiempo conectado...).
  • Tope de monedas por VIP: MuServer\GameServer\Data\GameServerInfo - Common.dat, claves MaxCoin1Value_AL0 a MaxCoin3Value_AL3 (0 = sin tope). Lo que se suma no pasa del tope; gastar no se limita. En los archivos que vienen con IGK: todas en 0 (sin tope).
  • Premio por tiempo conectado: GameServerInfo - Common.dat, claves OnlineRewardCoin1Delay (minutos) y OnlineRewardCoin1Value_AL0..3 (igual para Coin2 y Coin3). En los archivos que vienen con IGK: cada 60 minutos, cantidad 0 (apagado).

Número de ítem "plano" (ItemIndex)

Muchos archivos nuevos piden el ítem como un solo número: grupo × 512 + número del ítem (grupo y número de MuServer\Data\Item\Item.txt).

ÍtemGrupo, númeroNúmero plano
Jewel of Bless14, 137181
Jewel of Soul14, 147182
Jewel of Life14, 167184
Jewel of Creation14, 227190
Jewel of Guardian14, 317199
Gemstone14, 417209
Jewel of Harmony14, 427210
Jewel of Chaos12, 156159
Box of Kundun (+1 a +5 = nivel 8 a 12)14, 117179

Otros archivos (los más viejos) piden el ítem en dos columnas: Cat/Section/Type (grupo) e Index/Item (número).

Valores especiales en las tablas

  • * = sin límite, cualquiera o "no se usa" (el servidor lo lee como -1).
  • 255 en sockets = sin socket.
  • Cada sección empieza con su número (0, 1, 2...) en una línea sola y termina con end.
  • Las líneas que empiezan con // son comentarios.

Cómo aplicar los cambios

  • Archivos de Data\Custom\ y GameServerInfo - Custom.dat: comando de GM /reload custom o reiniciar el GameServer.
  • Bots (Data\Custom\BotSystem\): /reload bots.
  • GameServerInfo - Common.dat: /reload common. GameServerInfo - Command.dat: /reload command.
  • Data\CashShop\: /reload cashshop. Tablas de Data\Util\ (ResetTable, MasterResetTable): /reload util.
  • Si un sistema también tiene archivo en el cliente (MainInfo\...), hay que correr el Encoder y entregar el cliente nuevo (ver 08_CLIENTE_PC_Y_ENCODER.md).

El jugador abre muchos sistemas desde el menú F4 ("Menú del sistema"). Los botones que aparecen dependen del cliente y del servidor:

BotónQué abreSe muestra si...
EventosHorarios de eventos (también tecla H)MainInfo.ini EnableEventTimeButton = 1
Tienda PremiumComprar VIP (CustomBuyVip.txt)MainInfo.ini EnableVipShopButton = 1
RankingRanking del juego (CustomRanking.txt)MainInfo.ini EnableRankingButton = 1
ComandosLista de comandosMainInfo.ini EnableCommandButton = 1
OpcionesVentana de opciones del juegoMainInfo.ini EnableOptionButton = 1
Ruleta de la suerteSystems\CustomLuckyWheel.txtMainInfo.ini EnableOptionVongQuay = 1
Quitar opción excelenteSystems\RemoveExcOption.txtMainInfo.ini EnableOptionHuyExl = 1
Banco de ítemsCustomItemBank.txtMainInfo.ini EnableJewelOfInventory = 1
Recompensa diariaCustomDailyReward.txtel servidor lo tiene prendido para esa cuenta
Gremory Case (con la cantidad que espera)Almacén de premiosGremoryCaseEnable = 1 en el servidor
MisionesPanel de misionesel servidor tiene prendidas las quests
Pase de temporadaSeasonPass.txtSeasonPassSwitch = 1 en el servidor

El menú F4 entero se prende con MainInfo.ini CustomMenuSwitch = 1 (ver 08_CLIENTE_PC_Y_ENCODER.md).

En el borde derecho de la pantalla hay además íconos de Reset, Master Reset, Season Pass y Quests (en el celular, una fila arriba de la columna derecha). Solo aparecen los que están prendidos.


Reset y Master Reset

Reset: GameServerInfo - Command.dat y Data\Util\ResetTable.txt

El reset vuelve al personaje a un nivel bajo a cambio de puntos y premios. El jugador lo hace con /reset (o /reset auto), o con el ícono Reset del costado derecho de la pantalla, que abre un panel con los requisitos, las joyas y el premio.

Opciones generales en MuServer\GameServer\Data\GameServerInfo - Command.dat:

ClaveQué haceValor en los archivos que vienen con IGK
CommandResetType0 = conserva los puntos; 1 = reinicia los stats y da los puntos de la tabla × número de resets; 2 = suma los puntos de la tabla (sección 1) a los que ya tiene2
CommandResetAutoEnable_AL0..3Permite /reset auto1
DisableResetAutoOutGame1 = el reset automático se apaga al salir del juego1
CommandResetCheckItem_AL0..31 = revisa el equipo puesto antes del reset0
CommandResetMove_AL0..31 = lleva al personaje a la ciudad0
CommandResetQuest_AL0..31 = borra las quests de clase0
CommandResetSkill_AL0..31 = borra skills y árbol master0
CommandResetLevel_AL0..3Nivel pedido si el reset no está en la tabla400
CommandResetMoney_AL0..3Zen pedido si el reset no está en la tabla20.000.000 / 15.000.000 / 10.000.000 / 10.000.000
CommandResetRewardCoin1Value_AL0..3 (y Coin2, Coin3)Monedas de premio por reset10 de cada moneda
CommandResetCount_AL0..3Resets que suma cada /reset1
CommandResetLimit_AL0..3Máximo de resets10000
CommandResetLimitDay_AL0..3, ...LimitWek..., ...LimitMon...Máximo por día, semana y mes10000
CommandResetStartLevel_AL0..3Nivel después del reset10
CommandResetPoint_AL0..3Puntos si el reset no está en la tabla0
CommandResetPointRateDW ... RF% de los puntos por clase (con tipo 1)100

Tabla por rango de resets en MuServer\Data\Util\ResetTable.txt:

Sección 0 (requisitos), una fila por rango:

ColumnaSignificado
IndexNúmero de la fila (enlaza con la sección 1)
MinReset, MaxResetRango de resets al que se aplica (se mira el reset que va a hacer)
Level_AL0..3Nivel pedido por VIP (* = el de Command.dat)
Money_AL0..3Zen pedido por VIP
Bless Soul Life Creation Guardian Gemstone Harmony Chaos LowerStone HigherStoneCantidad de cada joya que se cobra (* = ninguna). Las joyas son fijas en ese orden

Sección 1 (premio), una fila por Index:

ColumnaSignificado
Point_AL0..3Puntos de stats del reset
ItemBag_AL0..3Bolsa de premio (número de bolsa de EventItemBagManager.txt; * = nada)

En los archivos que vienen con IGK: 14 rangos (0-5 resets a 401-516), nivel 225 a 395, zen gratis hasta el reset 20 y luego de 20 a 150 millones; puntos de 350 a 65 por reset.

Límite global de resets: GameServer\GHRS.txt y GameServer\Reset.ini

Además del límite por personaje, hay un tope de resets para todo el servidor que sube solo cada día:

  • MuServer\GameServer\GHRS.txt, [GHRSSV] GioiHanRS: el tope actual. En los archivos que vienen con IGK: 105.
  • MuServer\GameServer\Reset.ini, [CONFIG]:
ClaveQué haceValor en los archivos que vienen con IGK
ResetNgayCuánto sube el tope cada día5
ResetGio, ResetPhut, ResetGiayHora, minuto y segundo en que sube23:59:00
  • A esa hora el servidor suma ResetNgay al tope, avisa a todos ("The daily reset limit has been increased to: N") y reescribe GHRS.txt.
  • Quien llegó al tope recibe "[Reset] You have reached the reset limit (X/Y)!".
  • Para quitar el tope: poner un número muy alto en GioiHanRS (por ejemplo 99999) con el GameServer cerrado.
  • Estos dos archivos se leen al iniciar el GameServer.

Master Reset: GameServerInfo - Command.dat y Data\Util\MasterResetTable.txt

El jugador lo hace con /mreset o con el ícono Master Reset.

Clave (en Command.dat)Qué haceValor en los archivos que vienen con IGK
CommandMasterResetType0 = conserva los puntos; 1 = da puntos de la tabla0
CommandMasterResetCheckItem_AL0..3Revisa el equipo puesto0
CommandMasterResetMove_AL0..3Lleva a la ciudad1
CommandMasterResetQuest_AL0..3Borra quests0
CommandMasterResetSkill_AL0..3Borra skills1
CommandMasterResetLevel_AL0..3Nivel pedido400
CommandMasterResetReset_AL0..3Resets pedidos0
CommandMasterResetMoney_AL0..3Zen pedido0
CommandMasterResetRewardCoin1Value_AL0..3 (Coin2, Coin3)Monedas de premio0
CommandMasterResetCount_AL0..3Master resets por uso1
CommandMasterResetLimit_AL0..3Máximo total10000
CommandMasterResetLimitDay/Wek/Mon_AL0..3Máximo por día / semana / mesFree: 1000/1000/30; VIP: 1/7/30
CommandMasterResetStartLevel_AL0..3Nivel después400
CommandMasterResetStartReset_AL0..3Resets después1
CommandMasterResetPoint_AL0..3, ...PointRateDW..RFPuntos y % por clase400 / 400
CommandMasterResetRemoveReset_AL0..3Resets que se quitan0

MuServer\Data\Util\MasterResetTable.txt funciona como ResetTable.txt: sección 0 con MinMReset, MaxMReset, Reset_AL0..3 (resets pedidos), Level_AL0..3, Money_AL0..3 y las 10 joyas; sección 1 con Point_AL0..3 e ItemBag_AL0..3. En los archivos que vienen con IGK: una fila (0 a 4000 master resets) que pide 400 resets, nivel 400, 2.030.630 de zen y 10 Bless, Soul, Life y Creation.

Botones de Reset y Master Reset: GameServerInfo - Custom.dat

ClaveQué haceValor en los archivos que vienen con IGK
ResetWindowSwitch1 = el cliente muestra el ícono Reset con su panel1
MasterResetWindowSwitch1 = el ícono Master Reset1

El panel manda /reset o /mreset, así que respeta todo lo de arriba.

Bono de vida por master reset: GameServerInfo - Common.dat, HpBonus_AL0..3 (vida extra por cada master reset) y HpBonus_MAX (tope). En los archivos que vienen con IGK: 1 y 10000.


VIP (niveles de cuenta)

Cómo se da el VIP

  • Comando de GM: /setvip <cuenta> <nivel 1-3> <días>.
  • Compra en el juego: menú F4 > Tienda Premium (archivo CustomBuyVip.txt, abajo).
  • Base de datos: el nivel y el vencimiento se guardan por cuenta y los leen los procedimientos WZ_GetAccountLevel / WZ_SetAccountLevel.

Al entrar, el jugador ve "Account Tier: Bronze (fecha)" con la fecha de vencimiento. Cuando el VIP vence, la cuenta vuelve a Free (lo controla la base de datos al leer el nivel de la cuenta).

Qué da el VIP

El VIP da lo que el dueño ponga en cada opción _AL1, _AL2, _AL3 de los archivos. Las más usadas:

ArchivoClaves
GameServerInfo - Common.datAddExperienceRate_AL, AddMasterExperienceRate_AL, ItemDropRate_AL, MoneyAmountDropRate_AL, MaxStatPoint_AL, éxito de joyas (BlessSuccessRate_AL...), MaxCoin..Value_AL
GameServerInfo - Command.datRequisitos y límites de /reset y /mreset
GameServerInfo - Custom.datCustomAttackTime_AL, CustomStoreTime_AL, MuOffHelperTime_AL, CustomPick..._AL, CustomItemBankAutoDeposit_AL...
TablasResetTable.txt, CustomMix.txt (RateAL1..3), MixExpansion.txt (Rate1..3), CustomJewel.txt (SuccessRate_AL1..3), Command.txt (EnableVip, MoneyVip...)

Comprar VIP en el juego: Data\Custom\CustomBuyVip.txt

El jugador abre F4 > Tienda Premium, elige un plan y paga con monedas.

ColumnaSignificado
IndexNúmero del plan (desde 1)
Exp+, Drop+Solo se muestran en la ventana. El bono real va en Common.dat (AddExperienceRate_AL, ItemDropRate_AL)
DaysDías que dura
AccLevelNivel de cuenta que da (1 Bronze, 2 Silver, 3 Gold)
Coin1, Coin2, Coin3Precio en WCoinC, WCoinP y Goblin Points
VipNameNombre del plan en el aviso de compra

En los archivos que vienen con IGK: 9 planes (Bronze, Plata y Gold de 7, 15 y 30 días, a 10, 15 y 20 WCoinC).

Necesita el cliente: la ventana lee su propia copia en MainInfo\Common\CustomBuyVip.txt. Las dos deben tener los mismos planes y precios (ver 08_CLIENTE_PC_Y_ENCODER.md).

Problemas comunes

  • "The selected plan is lower than your current plan!": no se puede comprar un plan de nivel igual o menor al VIP que ya tiene (tampoco renovar el mismo nivel). Hay que esperar a que venza o darlo con /setvip.
  • "You do not have enough funds to purchase!": le faltan monedas.

Cash Shop (tienda de monedas, tecla X)

Data\CashShop\CashShopPackage.txt y CashShopProduct.txt

La tienda del juego de Season 6 (tecla X). Se paga con WCoinC, WCoinP o Goblin Points.

  • GameServerInfo - Common.dat: CashShopSwitch = 1 la prende. CashShopScriptVersion1..3 y CashShopBannerVersion1..3 deben coincidir con las carpetas del cliente Data\InGameShopScript\512.2011.006 y Data\InGameShopBanner\583.2010.005 (en los archivos que vienen con IGK: 512/2011/6 y 583/2010/5).

CashShopPackage.txt (lo que se ve en la tienda):

ColumnaSignificado
CatCategoría (pestaña)
ID, MainNúmero del paquete (deben coincidir con el script del cliente)
ItemÍtem del paquete
CoinMoneda: 508 = WCoinC, 509 = WCoinP, 0 = Goblin Points
PricePrecio
BonusGoblin Points de regalo al comprar
PBase1..10, PMain1..10Productos del paquete (de CashShopProduct.txt)

CashShopProduct.txt (el ítem que se entrega): ID, Number, Value (precio), Item (número plano), Level, Skill, Luck, Option, ExOpt, AncOp, JOH, Oexe, Socket1..5, Qtd (cantidad), Duration (segundos; 0 = permanente).

Necesita el cliente: los scripts IBSCategory.txt, IBSPackage.txt, IBSProduct.txt de Data\InGameShopScript\<versión>\ deben tener los mismos números. Si cambias la tienda, sube la versión en el servidor y en el nombre de la carpeta del cliente.

Otras opciones de compra en GameServerInfo - Custom.dat: DelayBuyShop (ms entre compras; 5000), DelayBuyXShop (ms entre compras en la tienda X; 3000), CustomShopMessageBox (0 sin confirmación, 1 solo compras con monedas, 2 todas).


Cambio de monedas: Data\Custom\CustomExchangeCoin.txt

Crea comandos para cambiar una moneda por otra.

ColumnaSignificado
IndexNúmero
CommandComando que escribe el jugador
RequireCoin1..3WCoinC, WCoinP, Goblin Points que cuesta (* = nada)
RewardCoin1..3Lo que recibe

En los archivos que vienen con IGK:

  • /trocargoldxcash: cuesta 2 WCoinC y da 4 Goblin Points.
  • /trocarcashxgold: cuesta 10 WCoinC y da 1000 WCoinP.

Banco de ítems: Data\Custom\CustomItemBank.txt

Banco por cuenta para joyas y otros ítems apilables (reemplaza al viejo Jewel Bank). No hay tecla propia: se abre desde F4 > Banco de ítems.

  • Depositar: Shift + clic derecho sobre el ítem en el inventario (deposita todos los de ese ítem y nivel). En el celular: tocar +.
  • Retirar: desde la ventana, 1, 10, 20, 30 o "All" (todo lo que entre).
  • Máximo 64 tipos de ítem.

Sección 0, ítems que se pueden guardar:

ColumnaSignificado
ItemIndexNúmero plano
ItemLevelNivel exacto (Box of Kundun +1 = nivel 8)
ItemPosAjuste vertical del dibujo en la ventana (px)
ItemSizeTamaño del dibujo: 9 normal, menos = más grande

Sección 1, paquetes (bundles): BundleIndex y ItemIndex. Un paquete de nivel L vale 10 × (L + 1) unidades; al retirar 10, 20 o 30 sale un paquete.

Opciones en GameServerInfo - Custom.dat:

ClaveQué haceValor en los archivos que vienen con IGK
CustomItemBankSwitch1 = prendido1
CustomItemBankAutoDeposit_AL0..31 = lo que recoge del suelo y está en la lista va directo al banco0
CustomItemBankMaxWithdrawMáximo por clic en "All"100

Base de datos: tabla CustomItemBank (script MuServer\DataBase\SQL\Update23 - Custom Systems.sql; también pasa los saldos del viejo Jewel Bank).


Gremory Case (almacén de premios)

Un almacén donde llegan premios que el jugador retira cuando quiere. Se abre desde F4 > Gremory Case (muestra cuántos ítems esperan).

Llegan ahí: los ítems de /gremory y /gremoryall (GM), la Recompensa diaria con el inventario lleno, los premios del Season Pass que no entran, los premios de League of Masters y los scripts Lua.

Clave (GameServerInfo - Custom.dat)Qué haceValor en los archivos que vienen con IGK
GremoryCaseEnable1 = prendido1
GremoryCaseExpireDaysDías hasta que vence cada ítem (0 = no vence)30
  • Guarda como máximo 50 ítems entre la cuenta y el personaje; con más, se borran los más viejos.
  • Base de datos: MuServer\DataBase\SQL\Update24 - Gremory Case.sql.
  • Necesita el cliente: el texto del origen de cada ítem está en MainInfo\Common\CustomMessageGremory.txt.

Recompensa diaria: Data\Custom\CustomDailyReward.txt

Un premio por cada día del calendario. Se abre en F4 > Recompensa diaria. Solo se cobra el premio de hoy, una vez por cuenta. Los días no cobrados se pierden.

  • Una sección por mes (1 a 12) y una fila por día (1 a 31). Un día sin fila no tiene premio.
  • Columnas: Day, ItemPosX, ItemPosY (ajuste del dibujo), ItemSize (8 normal, menos = más grande), ItemIndex (número plano), Level, Dur, Skill, Luck, Option, ExcOp, SetOp, JoH, OEx, Socket1..5, BonusSocket (255 = sin socket), Duration (segundos; 0 = permanente).
Clave (GameServerInfo - Custom.dat)Qué haceValor en los archivos que vienen con IGK
CustomDailyRewardSwitch1 = prendido1
CustomDailyRewardEnable_AL0..31 = disponible para ese VIP1
CustomDailyRewardLevel, ...Reset, ...MasterResetMínimos para cobrar0

Si el inventario está lleno, el premio va al Gremory Case. Base de datos: tabla CustomDailyReward (Update23 - Custom Systems.sql).


Season Pass (pase de temporada): Data\Custom\SeasonPass.txt

Pase por cuenta: las misiones dan puntos de pase; cada cierta cantidad de puntos se sube un nivel y cada nivel tiene un premio gratis y uno premium. Se abre en F4 > Pase de temporada o con su ícono.

  • GameServerInfo - Custom.dat: SeasonPassSwitch (1 = prendido; en los archivos que vienen con IGK: 1).
  • Base de datos: obligatorio correr MuServer\DataBase\SQL\Update28 - Season Pass.sql.
  • Los premios se reclaman a mano. Lo que no entra en el inventario va al Gremory Case.
  • Fechas y días con la hora del servidor.

Sección 0, la temporada (una fila):

ColumnaSignificadoValor en los archivos que vienen con IGK
SeasonNúmero de temporada. Cambiarlo empieza todo de cero1
StartDateDía de inicio, AAAAMMDD (mejor un lunes: cada semana abre ese día a las 00:00)20261012
WeeksSemanas (1 a 12). Después no se ganan puntos, pero se sigue reclamando8
MaxLevelNiveles (1 a 60)50
LevelPointsPuntos por nivel500
PremiumPricePrecio del premium (0 = no se vende)1500
PremiumCoin1 WCoinC, 2 WCoinP, 3 Goblin Points1
PremiumVipNivel de cuenta desde el que el premium viene incluido (0 = ninguno)0
NameNombre en la ventana (hasta 31 letras)"Season 1"

Sección 1, premios por nivel: Level (0 = premio cada LevelPoints después del último nivel), Track (0 gratis, 1 premium), ItemIndex (-1 = solo monedas), datos del ítem como en los demás archivos, Duration, Count (copias), CoinType (0 nada, 1 WCoinC, 2 WCoinP, 3 GP) y CoinAmount. Varias filas del mismo nivel y pista = varios premios juntos.

Sección 2, misiones:

ColumnaSignificado
IndexNúmero único (0 a 199). El avance se guarda con este número
WeekSemana en que abre (las pasadas siguen abiertas). 0 = diaria (se renueva a las 00:00)
Type1 matar monstruos (Param1 = monstruo, Param2 = mapa; -1 cualquiera); 2 terminar Blood Castle (Param1 1 = solo ganando); 3 Devil Square (1 = solo primer puesto); 4 Chaos Castle (1 = solo ganando); 5 completar una quest de /quest; 6 completar una quest de NPC (Param1 = número o -1); 7 cobrar la Recompensa diaria; 8 minutos conectado; 9 hacer un reset; 10 hacer un master reset
CountCuántas veces
PointsPuntos de pase
NameTexto (hasta 39 letras)

Misiones: /quest (CustomQuest) y quests de NPC (CustomNpcQuest)

Hay dos tipos de misiones y un panel para verlas: F4 > Misiones (o el ícono Quests). El panel tiene dos pestañas:

  • En cadena (/quest): las de CustomQuest.txt, una a la vez y en orden. Cuando está lista, el botón Entregar del panel la entrega (igual que escribir /quest).
  • Misiones de NPC: las de CustomNpcQuest.txt. Se empiezan y se entregan hablando con el NPC.

El panel muestra requisitos, cacería, ítems y premios, y la opción Seguir para verla en pantalla.

Opciones (GameServerInfo - Custom.dat)

ClaveQué haceValor en los archivos que vienen con IGK
CustomQuestSwitch1 = prende /quest1
CustomNpcQuestSwitch1 = prende las quests de NPC1

Base de datos: Update 3 - CustomQuestSQL.sql, Update13 - CustomNpcQuest Table.sql y Update27 - Custom Quest Panel.sql (sin el Update27 todo funciona, pero las muertes de la quest de /quest vuelven a cero al reconectar).

Data\Custom\CustomQuest.txt (cadena de /quest)

SecciónQué tieneColumnas
0Requisitos (1 fila por quest)Quest Level Reset MReset Zen WC WP GP VipLvl RankUser Kills (* = sin requisito; zen y monedas se cobran al entregar)
1Ítems que pide (se quitan al entregar)Quest Cat Item Level Luck Skill Qtd (Luck/Skill: 0 sin, 1 con, * cualquiera)
2Monstruo a matar (1 tipo por quest)Quest Monster Qtd
3Premio en monedasQuest WC WP GP
4Premio en ítemsQuest Section Type Level Dur Skill Luck Option ExcOp SetOp JoH OEx Socket1..5 Time Class (Class * = todas; 0 DW ... 6 RF)
5Premio en buffQuest Effect Power1 Power2 Time
6Premio en experienciaQuest Experience
7Nombre en el panel (hasta 31 letras)Quest Name

Data\Custom\CustomNpcQuest.txt (quests de NPC)

Igual que la anterior, con una sección 0 extra para el NPC:

SecciónColumnas
0 NPCQuest NpcIndex NpcMap NpcX NpcY MaxQuest OpenNpc (MaxQuest = veces que se puede hacer, 0 = sin límite; OpenNpc 1 = después abre el NPC normal: tienda, movimiento...)
1 RequisitosQuest Level Reset MReset Zen WC WP GP VipLvl RankUser Kills
2 ÍtemsQuest Cat Item Level Luck Skill Qtd
3 MonstruoQuest Monster Qtd
4 MonedasQuest Cash Gold PcPoint (WCoinC, WCoinP, GP)
5 Ítems de premiocomo la sección 4 de CustomQuest
6 BuffQuest Effect Power1 Power2 Time
7 ExperienciaQuest Experience
8 NombreQuest Name

En los archivos que vienen con IGK: 2 quests con el NPC 254 (Pasi the Mage) en Lorencia.


Ruleta de la suerte: Data\Custom\Systems\CustomLuckyWheel.txt

Se gira desde F4 > Ruleta de la suerte. Cada giro cuesta monedas o un ítem y da un premio al azar.

SecciónQué tiene
0Enable (1 prendida), Firework (fuegos al ganar), Notice (aviso a todos al ganar). En los archivos que vienen con IGK: 1, 0, 1
1Mensajes del sistema (Index y texto)
2Ruedas, numeradas desde 1 sin saltos: Wheel Name ReqType ReqIndex WC WP GP Count (ReqType ReqIndex = ítem que pide cada giro, Count unidades; 0 = no pide ítem)
3Premios (máximo 12 por rueda): Wheel SizeBMD Type Index Level Dur Skill Luck Opt Exc Anc SK1..SK5 SKBonus HSD Rate (SizeBMD = tamaño del dibujo, HSD = minutos que dura, 0 permanente; Rate = peso en el sorteo)

En los archivos que vienen con IGK: una rueda que cuesta 50.000 WCoinC por giro, con 12 premios (paquetes de joyas y alas de 1ª).


Quitar opción excelente: Data\Custom\Systems\RemoveExcOption.txt

Quita una opción excelente elegida de un ítem. Se abre en F4 > Quitar opción excelente.

SecciónQué tiene
0Enabled (1 prendido; en los archivos que vienen con IGK: 1)
1Mensajes del sistema
2Requisitos: ReqResets (-1 = sin requisito), MinLevel, MaxLevel (nivel +N del ítem), Skill y Luck (-1 no se mira, 1 debe tenerlo, 0 no debe tenerlo)
3Costo y éxito por opción: ExcOpt (0 a 5), WC, WCP, GBP, Rate (%)

Opciones (armas / armaduras): 0 zen +30 % / mana al matar; 1 tasa de defensa +10 % / HP al matar; 2 refleja daño / velocidad de ataque; 3 reduce daño / daño +%; 4 mana máx / daño por nivel; 5 HP máx / daño excelente. En los archivos que vienen con IGK: cada opción cuesta 100.000 WCoinC con 50 % de éxito; si falla, se pierde lo pagado.


Cambio de ítems en NPC: Data\Custom\Systems\ChangeItem.txt

Un NPC cambia un ítem por otro de una lista (por ejemplo un arma de una clase por la de otra clase).

SecciónQué tiene
0Enable (1 prendido)
1Mensajes
2NPC: NpcClass Map X Y Dir. No hace falta ponerlo en MonsterSetBase. En los archivos que vienen con IGK: NPC 243 en Lorencia 130,125
3Un grupo por fila: Notice (0 no, 1 en el subservidor, 2 en todos), Name, WCoin (costo), Type Index Level Skill Luck Option Exc (ítem que se entrega; Level = mínimo; Skill/Luck/Option/Exc en 1 = debe tenerlo), R0Type R0Index ... R5Type R5Index (hasta 6 ítems que se pueden recibir)

Rankings y títulos

Ranking del juego (F4 > Ranking): Data\Custom\CustomRanking.txt

Define las pestañas del ranking y el nombre de sus 3 columnas.

ColumnaSignificado
TabIndexPestaña: 0 Reset, 1 Nivel/puntos, 2 Master, 3 Monedas, 4 Eventos, 5 Top jefes
Colum1..3Títulos de las columnas
  • GameServerInfo - Custom.dat: CustomRankingSwitch = 1.
  • Se actualiza cada 3 minutos y muestra los 20 primeros, con filtro por clase.
  • Base de datos: correr MuServer\DataBase\SQL\Update25 - Custom Ranking.sql. Sin él, SQL Server da "Procedure or function WZ_CustomRanking has too many arguments specified" y las listas salen vacías. También crea la tabla de puntos de jefes (pestaña Top jefes).

Top por comando: Data\Custom\CustomTop.txt

/top <comando> muestra un top en el chat. Columnas: Index (número del tipo, el que usa el procedimiento WZ_CustomTop de la base), Command y Title. En los archivos que vienen con IGK: /top rr (TOP RR) y /top mr (TOP MR). Base de datos: Update 3 - CustomTop.sql.

Títulos por resets o nivel: Data\Custom\CustomRankUser.txt

Da un título (rango) según los resets, master resets o nivel, y un premio al subir de rango.

ColumnaSignificado
RankIndexNúmero del rango
NameTítulo
ResetMin, ResetMaxRango de valores (el último debe tener ResetMax = -1)
Cash, Gold, PcPointPremio en WCoinC, WCoinP, GP al llegar
Clave (GameServerInfo - Custom.dat)Qué haceValor en los archivos que vienen con IGK
CustomRankUserSwitch1 = prendido1
CustomRankUserTypeQué se mide: 0 resets, 1 master resets, 2 nivel + nivel master2
CustomRankUserRewardSwitch1 = da el premio1
CustomRankUserNoticeToAll, ...ToUserAvisos al subir1

El título se ve sobre la cabeza. Cómo se ve lo decide el cliente: MainInfo.ini RankUserSwitch y las opciones del jugador (ver 08_CLIENTE_PC_Y_ENCODER.md). Los rangos de requisito (RankUser) que piden otros archivos son el RankIndex de esta tabla.

Puntos por matar jefes: Data\Custom\Systems\BossKillPoints.txt

Da puntos al personaje que mata un jefe. Los puntos salen en F4 > Ranking > Top jefes.

Columnas: Monster (número de Monster.txt), Points, Notice (1 = aviso a todo el servidor). En los archivos que vienen con IGK: dorados 1 punto (Golden Iron Knight y Great Golden Dragon 10), Kundun 50, otros jefes 20.


Jefes y monstruos custom

Barra de vida de jefes y ranking de daño: Data\Custom\CustomBossHealthBar.txt

Una barra de vida grande arriba de la pantalla para los jefes, y un panel con quién hizo más daño.

ColumnaSignificado
MonsterIndexNúmero de Monster.txt
MapNumberMapa (* = todos)
HealthBar1 = barra grande para quien ve al jefe
DamageRanking1 = panel de daño para quien le pega
MaxUserRankJugadores en el ranking, 1 a 40 (* = 10). El panel muestra 15 filas y se desplaza con la rueda
  • Vale la primera fila que coincide. Con varios jefes, el jugador ve el último que golpeó; si no, el más cercano.
  • Un jugador sale de la lista tras TimeGiuBoss ms sin pegar (GameServerInfo - Common.dat; 15000), al cambiar de mapa o a más de 20 casillas. Un jugador muerto por otro jugador pierde su daño.
  • Al morir el jefe, la tabla final queda unos segundos en pantalla.
  • En los archivos que vienen con IGK: Kundun, Erohim, Balram, Death Spirit, Soram y Golden Iron Knight, top 5.

Monstruos más fuertes y premios: Data\Custom\CustomMonster.txt

Cambia los valores de un monstruo (en %) y da premios al que más daño le hizo.

ColumnaSignificado
Index, MapMonstruo y mapa (* = todos)
MaxLife, DamageMin, DamageMax, Defense, AttackRate, DefenseRate% del valor normal (100 = igual, 200 = el doble)
ExperienceRate% de experiencia
KillMessageNúmero de Message.txt que se anuncia a todos al matarlo (* = nada)
InfoMessageDistinto de * = avisa al ganador las monedas que recibió
RewardValue1..3WCoinC, WCoinP, GP para el que más daño hizo
SummonMonster, SummonMonterCount, SummonMonsterRateMonstruo que aparece al morir, cuántos y % de probabilidad

Ojo: no confundir con MainInfo\Monster\CustomMonster.txt del cliente, que es otro archivo (los modelos de monstruos nuevos).

Mensaje del monstruo al matar: Data\Custom\CustomDeathMessage.txt

Cuando un monstruo mata a un jugador, el monstruo "dice" un texto. Columnas: index (número del monstruo) y el texto. GameServerInfo - Custom.dat: CustomDeathMessageSwitch = 1.

Avisos de muerte en el chat (otro sistema), en GameServerInfo - Common.dat: DieUserSwitch (al morir por un jugador; 2 en los archivos que vienen con IGK), DieMonsterSwitch (por un monstruo; 0), PK_ColorMessPVP, PK_ColorMessPVM (color) y PK_DelayMess (segundos en pantalla).


Muerte y reaparición

Pantalla de muerte y revivir en el lugar: GameServerInfo - Custom.dat

Al morir en un mapa abierto, el mundo se pone gris, dice quién te mató y cuenta lo que falta para revivir. No aparece en eventos, duelos, guerras de guild, la batalla de Crywolf ni los jefes de Kanturu y Raklion.

ClaveQué haceValor en los archivos que vienen con IGK
DeathScreenSwitch0 = como el MU original, 1 = con la pantalla1
ReviveHereVipLevelVIP mínimo (1 a 3) para el botón Revivir aquí sin talismán (0 = ningún VIP)1
ReviveHereTalisman1 = quien tiene un Talisman of Resurrection (13,69) en el inventario también puede, y se gasta uno1

Revivir en el lugar solo funciona en los lugares de MuServer\Data\Move\MoveSummon.txt (los mismos del Talisman of Resurrection), con su AccountLevel y PkMove. Columnas de ese archivo: Map X Y TX TY MinLevel MaxLevel MinReset MaxReset AccountLevel PkMove.

Dónde revive cada mapa: Data\Move\RespawnLocation.txt

ColumnaSignificado
MapMapa donde murió
MoveGate1 = usa la puerta de la columna Gate; 0 = reaparición normal
GatePuerta de Gate.txt (* = reaparición normal)

Ejemplo de los archivos que vienen con IGK: 63 1 294 → quien muere en Vulcanus revive en Vulcanus.


Ataque, tienda y recogida automáticos

/attack y /offattack: GameServerInfo - Custom.dat y Data\Custom\CustomAttackSkill.txt

/attack ataca solo con una skill; /offattack sigue atacando con el juego cerrado (ver la sintaxis en 05_COMANDOS.md).

ClaveQué haceValor en los archivos que vienen con IGK
CustomAttackTime_AL0..3Minutos que dura (0 = sin límite)0
CustomAttackDelayms mínimos entre golpes0
CustomAttackAutoPotionDelayms entre pociones automáticas (usa poción con menos de 50 % de vida o mana)0
CustomAttackAutoBuff_AL0..31 = se pone los buffs solo1
CustomAttackAutoBuffDelayms entre buffs10000
CustomAttackAutoResume_AL0..31 = el ataque offline vuelve tras un reinicio del servidor1

OffAttackExperienceRate_AL0..3 en Common.dat: experiencia con /offattack (1000 en los archivos que vienen con IGK). En MuServer\Data\MapManager.txt, la columna CustomAttack (1/0) permite o no el sistema en cada mapa. Base de datos: Update11 - CustomAttack Table.sql.

CustomAttackSkill.txt: cómo se lanza cada skill. Sin fila, el servidor lo decide solo. Columnas: Skill (número de Skill.txt), Type (1 un objetivo, 2 área con lista de objetivos, 3 sobre la posición del objetivo, 4 skill de Rage Fighter), Delay (ms base; se le resta la velocidad de ataque × 5) y MinDelay (mínimo). En los archivos que vienen con IGK: vacío.

Ayudante offline (MU Helper offline): GameServerInfo - Custom.dat

ClaveQué haceValor en los archivos que vienen con IGK
MuOffHelperEnabled_AL0..31 = permite dejar el ayudante offline1
MuOffHelperTime_AL0..3Minutos que dura9999
MuOffHelperPickUpEnabled_AL0..31 = recoge ítems mientras está offline1

Tienda personal con joyas y monedas (/store, /offstore): GameServerInfo - Custom.dat

ClaveQué hace
CustomStoreTime_AL0..3Minutos que dura la tienda offline (0 = sin límite)
CustomStoreCommandJoBSyntax... WCGSyntaxPalabra para cada tipo de tienda: bless, soul, chaos, wcc, wcp, wcg
CustomStoreJoBName... WCGNameNombre que se pone a la tienda

La columna CustomStore de MapManager.txt la permite por mapa.

Recogida automática (/pick): Data\Custom\CustomPick.txt

/pick <nombre> prende o apaga la recogida automática de ese ítem. También existen /pick exc, /pick socket y /pick setitem.

Columnas: ID, String (el nombre del comando), Cat y Item (el ítem). Máximo 20. En los archivos que vienen con IGK: soul, bless, chaos, zen y life.

Clave (GameServerInfo - Custom.dat)Qué haceValor en los archivos que vienen con IGK
CustomPickSwitch1 = prendido1
CustomPickEnable_AL0..3Por VIP1
CustomPickRequireLevel_AL0..3, ...Reset...Mínimos0
CustomPickRequireMoney_AL0..3Zen que cuesta0, 0, 0, 200000

La columna CustomPick de MapManager.txt lo permite por mapa.


Combate

Combos para todas las clases: Data\Custom\CustomCombo.txt

Permite combos a todas las clases (en el MU original solo el Dark Knight).

  • Se prende en GameServerInfo - Common.dat con EnableComboToAllSwitch = 1. En los archivos que vienen con IGK: 0 (apagado).
  • Sección 0: skills de primer golpe (Energy Ball, Falling Slash, Lunge, Uppercut, Cyclone, Slash, Teleport, Mana Glaive, Drain Life).
  • Sección 1: skills de segundo y tercer golpe (Lightning, Ice, Aqua Beam, Inferno, Twisting Slash, Rageful Blow, Death Stab, Frozen Stab, Chain Lightning, Red Storm).
  • Un número de skill por línea (de Skill.txt).
  • En Android, la ayuda de combos del celular usa esta lista.

Espera entre skills (anti-hack de velocidad): Data\Custom\Systems\SkillDelayConfig.txt

Tiempo mínimo entre dos usos de una skill. Tres formatos por línea:

FormatoColumnas
Normal (3 valores)SkillID ClassID BaseDelay
Con agilidad (5 valores)SkillID ClassID BaseDelay MinDelay AgiRatio (cada AgiRatio puntos de agilidad baja 1 ms, hasta MinDelay)
Especial (6 valores)SkillID ClassID BaseDelay 1 TickDelay Cooldown (skills de golpes repetidos: ms entre golpes y espera al terminar)

ClassID -1 = todas las clases. En los archivos que vienen con IGK: Teleport, Falling Slash y Uppercut 3000 ms; Large Ring Blower 1000 ms; Fire Scream y Evil Spirit especiales (golpe cada 100/150 ms, espera 10 s); la mayoría de skills de ataque 200 ms bajando con la agilidad hasta 50 ms.

Otras opciones anti-hack (en Common.dat): CheckSpeedHack, CheckAutoPotionHack, CheckAutoComboHack, SpeedHackSkillEnable...

Skills desactivadas por mapa: Data\Skill\SkillMapDisable.txt

Apaga una skill en un mapa, por separado contra monstruos (PvM) y contra jugadores (PvP).

ColumnaSignificado
SkillIndexNúmero de Skill.txt (* = todas). Las mejoras del árbol master siguen la fila de su skill base
MapNumberMapa (* = todos)
UsePvM1 = se puede usar contra monstruos, 0 = no
UsePvP1 = contra jugadores, 0 = no
  • Gana la fila más específica: skill + mapa, luego skill + *, luego * + mapa, luego * + *.
  • Los buffs y skills sobre un jugador (uno mismo o un aliado) siguen UsePvP.
  • Las skills sin objetivo (Teleport) solo se bloquean con 0 0.
  • Ejemplo: 51 6 1 0 → Ice Arrow sirve contra monstruos en Arena pero no contra jugadores.
  • En los archivos que vienen con IGK: vacío.

Buffs con /buff: Data\Custom\Systems\AddBuff.txt

/buff le pone al jugador la lista de buffs de este archivo (un uso cada 5 segundos).

Sección 0, hasta 16 filas: EffectID (número de Effect.txt), Timer (segundos), Power1..4 (valores). En los archivos que vienen con IGK: 8 buffs de 3600 s (1 hora).

Formato estricto: el 0 y el end deben estar solos en su línea, sin espacios.

Buff del NPC de buffs (otro sistema) en Common.dat: TimeBuf (minutos; 60) y Buff_DW_MNS, Buff_DK_GM, Buff_ELF_Thu, Buff_ELF_Dame, Buff_DL_ChiMang, Buff_SUM_PhanDame, Buff_RF_ThuLuc, Buff_RF_PhongThu.


Mapas, zonas y NPC

Zonas PK dentro de un mapa: Data\Custom\CustomPkZone.txt

Una zona rectangular con su propia regla de PK, que manda sobre la del mapa.

ColumnaSignificado
MapNumberMapa
BeginPosX, BeginPosY, EndPosX, EndPosYEsquinas (en cualquier orden)
PkType0 = se permite PK (aunque sea ciudad); 1 = no se permite; 2 = PK sin volverse asesino

Dentro de una ciudad, dos jugadores pelean solo si los dos están en una zona 0 o 2. En los archivos que vienen con IGK: vacío (hay ejemplos comentados).

Requisitos y cobro por estar en un mapa: Data\Custom\CustomMapRequirement.txt

Se revisa cada segundo, así vale para cualquier forma de llegar (puerta, /move, NPC, reaparición). Al llegar se cobra la entrada. Los GM no pagan.

ColumnaSignificado
MapMapa
MoneyZen
Coin1..3WCoinC, WCoinP, Goblin Points
ItemIndex, ItemLevel, ItemCountÍtem que se cobra (número plano; * = ninguno / cualquier nivel)
RenewTimeMinutos que dura la entrada; al terminar se cobra otra vez (0 = una vez por visita)
MinLevel, MaxLevel, MinReset, MaxReset, MinMReset, MaxMResetRequisitos
PartyCountMínimo de miembros de party
MoveGatePuerta de Gate.txt a la que se manda a quien no cumple o no puede pagar
TimerSend1 = avisa cuando faltan 5 y 1 minutos, 30 y 10 segundos

Ejemplo: 8 10000 0 0 0 * 0 1 10 100 * * * * * * 17 1 → Tarkan cuesta 10.000 de zen cada 10 minutos desde el nivel 100. En los archivos que vienen con IGK: vacío.

Requisitos para hablar con un NPC: Data\Custom\CustomNpcRequirement.txt

Si el jugador no cumple, el NPC no se abre y le dice el motivo. Si cumple, se cobra cada vez que habla con el NPC.

SecciónColumnas
0 NPCIndex Npc NpcMap NpcX NpcY NpcTalk WarnMessage (NpcTalk 1 = después funciona normal, 0 = solo cobra; WarnMessage = número de Message.txt, 0 = el motivo exacto)
1 PersonajeIndex MinLevel MaxLevel MinReset MaxReset MinMReset MaxMReset AccountLevel PK RankUser Gens PartyCount UserGuildLevel (PK 0 = los asesinos no pueden; Gens 0 sin familia, 1 Vanert, 2 Duprian, 3 cualquiera; UserGuildLevel 0 nada, 32 Battle Master o más, 64 asistente o más, 128 solo el maestro)
2 ÍtemsIndex Cat Item Level Luck Skill Qtd Delete (Delete 1 = se cobran)
3 ClasesIndex DW DK ELF MG DL SU RF (0 no puede, 1 cualquier evolución, 2 segunda clase o más, 3 tercera clase)
4 MonedasIndex Coin1 Coin2 Coin3

En los archivos que vienen con IGK: vacío (hay ejemplos comentados).

NPC que teletransporta: Data\Custom\CustomNpcMove.txt

Hablar con el NPC lleva a otro lugar si cumple los requisitos.

Columnas: Index Npc NpcMap NpcX NpcY MoveMap MoveX MoveY MinLevel MaxLevel MinReset MaxReset MinMReset MaxMReset AccountLevel PKMove (PKMove 1 = los asesinos también pueden).

Comandos desde NPC y mover por comando

CustomNpcCommand.txt y CustomMove.txt: ver 05_COMANDOS.md.


Ítems custom

Joyas custom: Data\Custom\CustomJewel.txt

Joyas nuevas que suben o ponen opciones a un ítem.

Sección 0 (las joyas):

ColumnaSignificado
IndexNúmero de la joya (enlaza con las secciones 1 y 2)
ItemIndexNúmero plano del ítem joya
MinItemLevel, MaxItemLevelNivel del ítem en que se puede usar
MaxItemOption1 (skill), MaxItemOption2 (luck), MinItemOption3/MaxItemOption3 (opción de vida), MinItemNewOption/MaxItemNewOption (cantidad de excelentes), MaxItemSetOption (ancient), MinItemSocketOption/MaxItemSocketOptionCondiciones del ítem destino (* = sin condición)
EnableSlotWeapon, EnableSlotArmor, EnableSlotWing0 = no sirve en armas / armaduras / alas (* = sí)
SuccessRate_AL0..3% de éxito por VIP
SalePricePrecio de venta
ModelNameModelo 3D (en Data\Item\ del cliente)

Sección 1: lo que suma al tener éxito (Index Level Option1 Option2 Option3 NewOption SetOption SocketOption). Sección 2: lo que quita al fallar (mismas columnas; vacía = no pasa nada).

En los archivos que vienen con IGK: 9 joyas (7468 a 7476): Level (+15), Skill, Luck, Adicional (+7), Excellent (+1 opción), Socket, Ancient 1, Ancient 2 y Full (+15 con skill, luck, +7 y 6 excelentes).

Necesita el cliente: MainInfo\Item\CustomJewel.txt (sección 0 igual que la del servidor) y el ítem en el cliente (ver 08_CLIENTE_PC_Y_ENCODER.md).

Alas custom: Data\Custom\CustomWing.txt

Alas nuevas con sus valores. Columnas: grupo (#), Index, DefA (defensa), IncDmgA/IncDmgB (aumento de daño), DecDmgA/DecDmgB (reducción de daño), Opt1..3/Val1..3 (opciones normales) y NewOpt1..4/NewVal1..4 (opciones excelentes), ModelType y ModelName.

Códigos de opción: 80 daño, 81 daño mágico, 82 tasa de defensa, 83 defensa, 84 luck, 85 recuperación de HP, 102 ignorar defensa, 109 reflejar daño, 110 recuperar vida, 111 recuperar mana, 113 daño de maldición.

En los archivos que vienen con IGK: 4 alas (12,262 a 12,265).

Necesita el cliente: MainInfo\Item\CustomWing.txt con las mismas filas (ver 08_CLIENTE_PC_Y_ENCODER.md).

Alas custom en la mezcla de 3ª: Data\Custom\CustomWingMix.txt

Agrega alas a los resultados de la mezcla de alas de 3er nivel del Chaos Goblin. Sección 0: Category Index. En los archivos que vienen con IGK: vacío.

Mezclas custom de la Chaos Machine: Data\Custom\CustomMix.txt

Mezclas nuevas en la Chaos Machine.

Sección 0, la mezcla:

ColumnaSignificado
IndexNúmero de la mezcla. Debe existir una receta con ese número en el cliente (Data\Local\Mix.bmd)
MoneyZen base. El costo real es Money × tasa de éxito (100.000 con 100 % = 10.000.000)
RateAL0..3% de éxito por VIP (fuera de 0-100 = 90)
CGroupCuántos grupos de ingredientes alternativos tiene (sección 2)
CItemCuántos ítems en total debe tener la Chaos Machine
ExeRand0 = el resultado tiene las excelentes de la sección 3; 1 = la sección 3 dice cuántas y salen al azar (6 = todas)
KeepItem1 = si falla, el ítem principal no se pierde (se pierden los demás ingredientes); 0 = se pierde todo
KeepOption1 = el resultado conserva las opciones (skill, luck, opción, excelentes, ancient, sockets) del ítem principal
Name, Name FailMensajes de éxito y fallo

Sección 1, ingredientes fijos: Index ItemMix level Count. Sección 2, ítems por grupo: Index Group Count ItemMin ItemMax MinLvl Skill Luck MinOpc ExeOpc SetOpc. Sección 3, resultados: Index Group ItemMin ItemMax ItemLvl Skill Luck AddOpc ExeOpc SetOpc Socket1..5 (-1 = al azar).

En los archivos que vienen con IGK: alas de 4ª, armas Dragon, Archangel Hammer, equipos Tier 5 a 8, refinado, anillos/colgantes y mascotas.

Mezclas extra del Goblin: Data\Custom\MixExpansion.txt

Una ventana de mezclas extra en un NPC.

SecciónColumnas
0 NPCNpc Map X Y. En los archivos que vienen con IGK: 238 (Chaos Goblin), Noria 189,107
1 MezclasKey Name Rate0..Rate3 Money ReqMoney Main TalismanOfChaos TalismanOfLuck LuckRate TalismanCnt
2 IngredientesKey Main MinIndex MaxIndex MinLevel MaxLevel MinDur MaxDur Skill Luck MinOpt MaxOpt Exc Anc MinCnt MaxCnt
3 ResultadosKey MinIndex MaxIndex Level Skill Luck Opt Exc Anc
  • Rate0..3: % de éxito por VIP. Money: moneda (0 zen, 1 WCoinC, 2 WCoinP, 3 GoblinPoint) y ReqMoney la cantidad.
  • Main (sección 1) es una marca: el ingrediente de la sección 2 con la misma marca en su columna Main es el ítem principal, el que se mejora conservando sus opciones. Con Main = 0 el resultado es un ítem nuevo. En los archivos que vienen con IGK la marca es 3 (el Kris).
  • TalismanOfChaos: ítem que evita que se rompa el ítem. TalismanOfLuck: sube el éxito LuckRate % por cada uno, hasta TalismanCnt.
  • En los resultados, -1 = conserva el valor del ítem principal.
  • Ítems con número plano (grupo × 512 + número).
  • En los archivos que vienen con IGK: "Level +10" y "Level +11" para el Kris (70 %, 10.000.000 de zen).

Las claves GoblinMixNpc, GoblinMixNpcX, GoblinMixNpcY, GoblinMixNpcMap de Custom.dat ya no se usan: el NPC sale de la sección 0 de este archivo.

Ítems y buff al crear el personaje: Data\Custom\CustomStartItem.txt

Da ítems y buffs una sola vez a cada personaje nuevo, en su primera entrada.

  • Sección 0, ítems: Class (0 DW, 1 DK, 2 FE, 3 MG, 4 DL, 5 SU, 6 RF), Section y Type (grupo y número del ítem), Level, Dur, Skill, Luck, Option, ExcOp, SetOp, JoH, OEx, Socket1..5, Time (segundos que dura; 0 = permanente).
  • Sección 1, buff: Class Effect Power1 Power2 Time (Time en minutos).
  • En los archivos que vienen con IGK: set +7 para DW y DK por 80.000 segundos (unas 22 horas) y un buff al DW.
  • Base de datos: Update14 - Add Item Start column.sql (marca los personajes que ya recibieron; el script marca a todos los existentes).

Colector de joyas: Data\Custom\CustomNpcCollector.txt

El NPC 236 (Golden Archer) cambia un inventario lleno (64 casillas) de la misma joya por monedas.

Columnas: Category, ItemIndex (la joya), Cash, Gold, PcPoint (WCoinC, WCoinP, GP que da). GameServerInfo - Custom.dat: CustomNpcCollectorSwitch = 1. En los archivos que vienen con IGK: Chaos y Harmony 6 WCoinC; Bless, Soul, Life, Creation, Gemstone y Rena 2 WCoinC.

Runas (Rune Effect): Data\Item\RuneItemOption.txt

La runa es un ítem que se equipa en su casilla (debajo de la bandera, slot 241 de Item.txt). Suma opciones como las banderas y dibuja un círculo en el suelo.

  • Servidor: MuServer\Data\Item\RuneItemOption.txt, una fila por runa: Type Index Opt1 Val1 Opt2 Val2 Opt3 Val3 Opt4 Val4. Códigos de opción: 80 daño, 81 daño mágico, 82 tasa de defensa, 83 defensa, 84 crítico, 85 recuperación de HP, 91 HP %, 94 daño %, 97 velocidad, 102 ignorar defensa, 119 HP, 120 MP (lista completa en el encabezado del archivo).
  • En los archivos que vienen con IGK: la runa 12,400 "Rune [V1]" sin opciones.
  • Necesita el cliente: MainInfo.ini RenderEquipmentRune = 1 (muestra la casilla) y MainInfo\Item\CustomRuneEffect.txt (el círculo: tamaño, color, giro y textura de Data\IGK\RuneEffect). Ver 08_CLIENTE_PC_Y_ENCODER.md.

Mensaje de mezclas en el chat: GameServerInfo - Custom.dat

AnnounceChaosMix (1 prendido), AnnounceChaosMixLevel (desde qué nivel), AnnounceChaosMixSuccess y AnnounceChaosMixFailure (textos).


Minería: Data\Mining.txt

Vetas de mineral en el mapa que el jugador pica con el Pandora Pick (ítem 0,41) en la mano derecha. Cada golpe gasta durabilidad del pico. Hay 5 etapas: en cada una se puede seguir (con riesgo de perder) o cobrar.

ColumnaSignificado
IndexMonstruo de la veta: 605 Mining Area (Small), 606 (Medium), 607 (Large)
StageEtapa (1 a 5)
ValueDurabilidad del pico que gasta
ItemRateÉxito sobre 10.000 (4750 = 47,5 %)
ItemIndex, ItemCountPremio (número plano) y cantidad; se entrega en paquetes de joyas cuando se puede
BonusItemRate, BonusItemIndex, BonusItemCountPremio extra (sobre 10.000) con aviso a todos (* = ninguno)

En los archivos que vienen con IGK: Jewel of Bless, de 1 a 125 según veta y etapa, con premio extra en la etapa 5. Las vetas están en MonsterSetBase de Lost Tower, Tarkan, Aida, Swamp of Calmness y Raklion.


Bots de servicio: Data\Custom\BotSystem\

Personajes falsos que dan servicios. Se recargan con /reload bots.

Clases (Class): 0-2 DW/SM/GM, 16-18 DK/BK/BM, 32-34 Elfa/ME/HE, 48-50 MG/DM, 64-66 DL/LE, 80-82 SU/BS/DS, 97-98 RF/FM. ColorName = color del nombre (0 a 6). Equipo del bot: BotIndex Slot Type Index Level Opt con slot 0 arma, 1 escudo, 2 casco, 3 armadura, 4 pantalón, 5 guantes, 6 botas, 7 alas, 8 mascota.

Bot de buffs: BotBuffer.txt

SecciónColumnas
1 BotsBotIndex Class Enabled ColorName Zen PCPoint MaxLvl Name Map X Y Dir (Zen/PCPoint = costo; MaxLvl = nivel máximo del jugador; nombre de hasta 10 letras)
2 RequisitosBotIndex Only_AL ReqGens GensContribution GensFamily (Only_AL = solo VIP; familia 1 Vanert, 2 Duprian)
3 EquipoIndex Slot Type Index Level Opt
4 BuffsBotIndex Skill MinusTime %Power (máximo 5 por bot: 28 Greater Damage, 27 Greater Defense, 16 Mana Shield, 64 Critical Damage, 48 Greater Life, 217 Reflect, 82 Magic Circle, 129 Ignore Defense, 130 Fitness)
  • En los archivos que vienen con IGK, todos los bots de BotBuffer.txt están comentados: no aparece ningún bot de buffs.
  • BotBuffer 100 2x2.txt y BotBuffer 80 1x1.txt son plantillas listas (100 u 80 bots); Default_BotBuffer.txt es la plantilla vacía. El servidor solo lee BotBuffer.txt: para usar una plantilla, copiarla con ese nombre.

Bot alquimista: BotAlchemist.txt

El jugador comercia (trade) con el bot poniendo dos ítems: el bot pasa las opciones (nivel, luck, skill, opción, excelentes) del segundo ítem al primero.

SecciónColumnas
1 BotBotIndex Class Enabled ColorName SucessRateBot NameBot IDMap CoordX CoordY Dir
2 EquipoBotIndex Slot Type Index Level Opt
3 Qué pasaBotIndex AllowLevel AllowOpt AllowLuck AllowSkill AllowExc AllowFFFFItems
4 Costo y reglasBotIndex OnlyVip WcoinC Zen WcoinP AcceptOnlySameType OnlyIfDestinyLower AcceptAncient MaxItemLevel MaxItemExcCount

En los archivos que vienen con IGK: un bot en Lorencia 138,140; cuesta 100.000 WCoinC; solo mismo tipo de ítem, diferencia de nivel ±10, sin ancient, máximo 5 excelentes.

Bot comprador de excelentes: BotExcBuyer.txt

El jugador vende ítems excelentes al bot por comercio y recibe monedas.

SecciónColumnas
1 BotBotIndex Class Enabled ColorName SucessRateBot NameBot IDMap CoordX CoordY Dir
2 EquipoBotIndex Slot Type Index Level Opt
3 Qué aceptaBotIndex AllowLevel AllowOpt AllowLuck AllowSkill AllowExc
4 Pago por ítemBotIndex OnlyVip WCoinMin WCoinMax WCP GP (WCoinC al azar entre mínimo y máximo, más WCP y GP fijos)

En los archivos que vienen con IGK: un bot en Noria 171,109 que paga de 1 a 200 WCoinC por ítem.

Bot comerciante de mezclas: BotTrader.txt

El jugador da ingredientes al bot por comercio y recibe un resultado (por ejemplo, paquetes de joyas).

SecciónColumnas
0 Bots (máximo 10)BotIndex Class Name Map X Y Dir OnlyVip EnableBot
1 EquipoBotIndex Slot Type Index Level Opt
2 MezclasMixIndex Name SuccessRate PriceType PriceCount (PriceType 0 zen, 1 WC, 2 WP, 3 GP)
3 Ítem que se conserva si fallaMixIndex Type Index LevelMax OptionMax Luck Skill Exc Ancient
4 IngredientesBotIndex MixIndex Type Index LevelMax OptionMax Luck Skill Exc Ancient
5 ResultadosMixIndex Type Index LevelMin LevelMax OptionMin OptionMax Luck Skill Exc Ancient
6 Mezclas de cada botBotIndex MixIndex

En los archivos que vienen con IGK: 4 bots en Lorencia con EnableBot = 0 (apagados).


Sistemas que están en otros archivos de la documentación

SistemaArchivo de configuraciónDocumentado en
Arena customData\Custom\CustomArena.txt04_EVENTOS.md
QuizData\Custom\CustomQuiz.txt04_EVENTOS.md
Lotería onlineData\Custom\CustomOnlineLottery.txt04_EVENTOS.md
Drop de eventoData\Custom\CustomEventDrop.txt04_EVENTOS.md
Descripción de comandosData\Custom\CustomCommandDescription.txt05_COMANDOS.md
Comandos desde NPCData\Custom\CustomNpcCommand.txt05_COMANDOS.md
/moveData\Custom\CustomMove.txt05_COMANDOS.md
League of MastersData\Custom\Moba\07_LEAGUE_OF_MASTERS.md

Preguntas frecuentes

P: ¿Cómo doy VIP a un jugador? R: Con el comando de GM /setvip <cuenta> <nivel 1-3> <días>. El jugador también puede comprarlo en F4 > Tienda Premium (CustomBuyVip.txt). Lo que da cada nivel se configura en las claves _AL1, _AL2, _AL3 de los archivos .dat.

P: ¿Cómo doy WCoin a un jugador? R: Con /setcoin <personaje> <1|2|3> <cantidad> (1 WCoinC, 2 WCoinP, 3 Goblin Points), o editando la tabla CashShopData de la base de datos. Si no llega todo, revisa el tope MaxCoin..Value_AL de Common.dat.

P: El jugador compró VIP en la Tienda Premium pero recibe más experiencia de la que dice el plan (o menos). R: Las columnas Exp+ y Drop+ de CustomBuyVip.txt solo se muestran. La experiencia y el drop reales del VIP salen de Common.dat (AddExperienceRate_AL1..3, ItemDropRate_AL1..3). Ajusta esos valores para que coincidan con lo que anuncias.

P: Un jugador no puede renovar su VIP. R: El sistema de compra no deja comprar un plan de nivel igual o menor al que ya tiene. Debe esperar a que venza, o el GM se lo da con /setvip.

P: Nadie puede hacer más resets y sale "You have reached the reset limit (105/105)". R: Es el tope global de MuServer\GameServer\GHRS.txt (GioiHanRS), que sube ResetNgay cada día a la hora de Reset.ini. Para quitarlo, cierra el GameServer y pon un número alto en GioiHanRS.

P: ¿Dónde cambio el zen y el nivel que pide el reset? R: En MuServer\Data\Util\ResetTable.txt, por rango de resets y por VIP. Los valores de Command.dat (CommandResetLevel_AL, CommandResetMoney_AL) solo se usan para resets que no están en la tabla.

P: El ranking del F4 sale vacío. R: Corre MuServer\DataBase\SQL\Update25 - Custom Ranking.sql. Las versiones viejas del procedimiento WZ_CustomRanking reciben un solo parámetro y SQL Server las rechaza. El ranking se actualiza cada 3 minutos.

P: El Season Pass no aparece en el F4. R: Revisa SeasonPassSwitch = 1 en GameServerInfo - Custom.dat y que corriste Update28 - Season Pass.sql. También que StartDate de SeasonPass.txt ya llegó.

P: ¿Cómo empiezo una temporada nueva del Season Pass? R: Cambia Season (por ejemplo de 1 a 2) y StartDate en la sección 0 de SeasonPass.txt. Todo empieza de cero; lo viejo queda guardado como historial.

P: ¿Con qué tecla se abre el banco de joyas? R: No tiene tecla propia: se abre desde F4 > Banco de ítems. Se deposita con Shift + clic derecho en el inventario.

P: Los combos no funcionan para el Dark Wizard ni la Elfa. R: El combo para todas las clases está apagado en los archivos que vienen con IGK. Pon EnableComboToAllSwitch = 1 en GameServerInfo - Common.dat y ajusta las skills en CustomCombo.txt.

P: No aparecen los bots de buffs. R: En BotBuffer.txt todas las filas de bots vienen comentadas (con //). Quita las // de las filas que quieras, o copia una plantilla (BotBuffer 80 1x1.txt o BotBuffer 100 2x2.txt) con el nombre BotBuffer.txt, y usa /reload bots.

P: ¿Cómo hago que un mapa cueste zen o pida nivel? R: Agrega una fila en CustomMapRequirement.txt con el mapa, el costo, los requisitos, RenewTime y la puerta MoveGate a donde mandar a quien no cumple.

P: ¿Cómo hago una arena con PK dentro de Lorencia? R: En CustomPkZone.txt, una fila con el mapa 0, las dos esquinas del rectángulo y PkType 0 (PK normal) o 2 (PK sin volverse asesino).

P: El botón "Revivir aquí" no sale. R: Necesita DeathScreenSwitch = 1, que el jugador tenga el VIP de ReviveHereVipLevel o un Talisman of Resurrection (con ReviveHereTalisman = 1), y que el mapa esté en MoveSummon.txt.

P: Cambié una mezcla custom pero el cliente no la muestra. R: El número Index de CustomMix.txt debe existir como receta en el cliente (Data\Local\Mix.bmd). Una mezcla sin receta en el cliente no se puede hacer.

¿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: